如何只用linux`find`来获取文件名?

我使用find查找目录中的所有文件,所以我得到一个路径列表。 不过,我只需要文件名。 即我得到./dir1/dir2/file.txt ,我想获得file.txt


在GNU find你可以使用-printf参数,例如:

find /dir1 -type f -printf "%fn"

如果你的find没有-printf选项,你也可以使用basename:

find ./dir1 -type f -exec basename {} ;

如果您使用GNU查找

find . -type f -printf "%fn"

或者你可以使用一种编程语言,比如Ruby(1.9+)

$ ruby -e 'Dir["**/*"].each{|x| puts File.basename(x)}'

如果你喜欢bash(至少4)解决方案

shopt -s globstar
for file in **; do echo ${file##*/}; done
链接地址: http://www.djcxy.com/p/47255.html

上一篇: How to only get file name with linux `find`?

下一篇: Count lines of code in a Django Project