【发布时间】:2012-06-19 02:14:13
【问题描述】:
我有一种情况,我需要选择所有具有 aliencoders.numeric-digits 的文件 像外星人.1206 并且 find 命令也应该搜索所有子目录。如果没有这样的文件,它不应该做任何事情。
我写了:
find /home/jassi/ -name "aliencoders.[0-9]+" | xargs ls -lrt | awk print '$9'
如果没有以aliencoders.xx开头的此类文件,则表示没有此类文件或目录...
我怎样才能绕过这个错误。我必须为几个这样的目录运行它,它应该只为那些存在这样的文件模式的目录提供输出,否则没有警告并且不做 xargs 等东西。
目前,如果没有这样的文件,那么它正在寻找当前目录而不是 /home/jassi
【问题讨论】:
-
您使用的是哪个外壳?重击? tcsh?
-
还有..你想要
awk '{print $9}'不? -
我正在使用 tcsh,我需要按排序顺序获取所有此类文件,因此 xargs ls -lRt 然后我只需要打印最后一列,即文件名和完整路径,因此使用 awk 进行管道处理
-
如果所有目录都在 /home/jassi 而不是更深的级别,您可以通过
for i in "/home/jassi/aliencoders.[0-9]+" ; do ls -lrt $i | awk '{print $9} ; done交换find。 -
不,它也有更深的层次,我认为要么我必须使用带有 xargs 的 find 命令或使用正则表达式的 File::Find 模块