找到 - 禁止“没有这样的文件或目录”错误
问题描述:
我可以使用-s
在grep
抑制错误,但我看不到在手册页中的find
命令的等效项...是唯一选项重定向STDERR >的/ dev/null的?找到 - 禁止“没有这样的文件或目录”错误
还是有一个选项可以处理这个问题吗? (如果需要打开看中awk
和perl
解决方案)
例子:
$ 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
答
您可以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
重定向stderr有什么问题?为什么你想要使用外部工具,如awk和perl?不知道是什么问题,很难提出解决方案 –
你可以在调用find'test -d/mnt/16_c/$ dir/data/&& find ....之前测试目录是否存在,所以根本不需要重定向 –