从linux find命令输出目录名
如何从linux查找命令中获取文件夹的名称 我有这样一个命令:从linux find命令输出目录名,linux,Linux,如何从linux查找命令中获取文件夹的名称 我有这样一个命令: find /root/wgetlog -name -type d -empty Whic产生以下结果: /root/wgetlog/smil3 /root/wgetlog/smil5 /root/wgetlog/smil4 如何仅获取文件夹的名称: 例如: smil3 smil4 smil5使用: 您不需要-name查找/root/wgetlog-type d-empty-printf“%f\n”您还可以使用sed过滤掉每个路径
find /root/wgetlog -name -type d -empty
Whic产生以下结果:
/root/wgetlog/smil3
/root/wgetlog/smil5
/root/wgetlog/smil4
如何仅获取文件夹的名称:
例如:
smil3
smil4
smil5使用:
您不需要
-name
查找/root/wgetlog-type d-empty-printf“%f\n”
您还可以使用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
...
这可能比使用find
的-printf
选项更具可移植性,尽管如果您坚持使用Linux,这不应该是一个问题
免责声明:如果您的文件/文件夹名称中有换行符,则此操作将失败。另一方面,在这种情况下,这个代码段可能不是唯一失败的…如果您只需要一个相对路径,那么
{ pushd /root/wgetlog/; find . -name -type d -empty; popd; }
是一种方法,特别是如果您确实关心/root/wgetlog/*。的子目录,但这些子目录不起作用:find:path必须在expression之前使用:find[-H][L][p][path…][expression]@wademills:是否删除了`-name`[root@385872-TEST wgetlog]#find/root/wgetlog-type d-empty-exec basename{}\find:“-exec”缺少参数您需要分号(
;
)。@wademills:不客气。请注意,StackOverflow.Oops上最能表达“that worked.thanking”的意思,请删除我从您的问题中复制的-name。
{ pushd /root/wgetlog/; find . -name -type d -empty; popd; }