如何从linux find commnad获取文件夹的名称。
我有这样的命令:
find /root/wgetlog -name -type d -empty
Whic产生以下结果:
/root/wgetlog/smil3
/root/wgetlog/smil5
/root/wgetlog/smil4
如何获取文件夹的名称:
实施例: smil3 smil4 smil5
答案 0 :(得分:2)
find /root/wgetlog -type d -empty -printf "%f\n"
答案 1 :(得分:1)
如果您只需要相对路径,那么
{ pushd /root/wgetlog/; find . -name -type d -empty; popd; }
是方法,特别是如果你关心/ root / wgetlog /*的子目录。
答案 2 :(得分:0)
答案 3 :(得分:0)
您还可以使用sed
过滤掉每条路径的主要元素:
$ find /usr/bin -type d
/usr/bin
/usr/bin/multiarch-i386-linux
/usr/bin/multiarch-x86_64-linux
/usr/bin/gda_trml2pdf
/usr/bin/gda_trml2html
...
$ find /usr/bin -type d | sed 's|.*/||'
bin
multiarch-i386-linux
multiarch-x86_64-linux
gda_trml2pdf
gda_trml2html
...
这可能比使用-printf
的{{1}}选项更具可移植性,但如果您坚持使用Linux,这应该不是问题。
免责声明:如果您的文件/文件夹名称中有换行符,则会失败。另一方面,在这种情况下,这个片段可能不是唯一会失败的......