找到 - 禁止“没有这样的文件或目录”错误

问题描述:

我可以使用-sgrep抑制错误,但我看不到在手册页中的find命令的等效项...是唯一选项重定向STDERR >的/ dev/null的?找到 - 禁止“没有这样的文件或目录”错误

还是有一个选项可以处理这个问题吗? (如果需要打开看中awkperl解决方案)

例子:

$ for dir in `ls /mnt/16_c/`; do find /mnt/16_c/$dir/data/ -mtime +180 -type f -exec echo {} \;; done 
find: `/mnt/16_c/test_container/dat/': No such file or directory 
+0

重定向stderr有什么问题?为什么你想要使用外部工具,如awk和perl?不知道是什么问题,很难提出解决方案 –

+1

你可以在调用find'test -d/mnt/16_c/$ dir/data/&& find ....之前测试目录是否存在,所以根本不需要重定向 –

您可以2>/dev/null重定向stderr,例如:

find /mnt/16_c/$dir/data/ -mtime +180 -type f -exec echo {} \; 2>/dev/null 

顺便说一下,在你的问题中的代码可替换为:

find /mnt/16_c/*/data/ -mtime +180 -type f 2>/dev/null 

如果至少有一个匹配目录,则 那么您甚至不需要抑制stderr, ,因为find只会在与此模式匹配的目录中搜索。

+0

谢谢,没有想到通配符会阻止这个事实! – JacobIRR