对于目录中的文件,只有echo文件名(无path)

如果我用for循环迭代一个目录,我该如何去回应一个文件的文件名?

for filename in /home/user/* do echo $filename done; 

将拉文件名的完整path。 我只想要文件名。

如果你想要一个本地bash解决scheme

 for file in /home/user/*; do echo ${file##*/} done 

以上使用的参数扩展是本地的shell,不需要调用外部二进制文件,如basename

不过,我可以build议只使用find

 find /home/user -type f -printf "%f\n" 

只需使用basename

 echo `basename "$filename"` 

如果$ filename包含空格,则需要引号。

使用basename

 echo $(basename /foo/bar/stuff)