我使用find来查找目录中的所有文件,所以我得到了一个路径列表。但是,我只需要文件名。例如,我得到./dir1/dir2/file.txt
,我想得到file.txt
发布于 2011-03-28 16:00:49
在GNU find
中,您可以使用-printf
参数来实现此目的,例如:
find /dir1 -type f -printf "%f\n"
发布于 2011-03-28 20:09:35
如果你的find没有-printf选项,你也可以使用basename:
find ./dir1 -type f -exec basename {} \;
发布于 2011-03-28 16:01:19
如果您正在使用GNU,请查找
find . -type f -printf "%f\n"
或者您可以使用诸如Ruby(1.9+)之类的编程语言。
$ ruby -e 'Dir["**/*"].each{|x| puts File.basename(x)}'
如果您想要一个bash (至少4个)解决方案
shopt -s globstar
for file in **; do echo ${file##*/}; done
https://stackoverflow.com/questions/5456120
复制相似问题