find - 抑制"没有这样的文件或目录"错误

Jac*_*IRR 4 unix bash find

我可以用-sgrep压制错误,但我没有看到为等效find的man page命令是重定向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
Run Code Online (Sandbox Code Playgroud)

Sto*_*ica 7

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

find /mnt/16_c/$dir/data/ -mtime +180 -type f -exec echo {} \; 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

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

find /mnt/16_c/*/data/ -mtime +180 -type f 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

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

  • 如果“-exec”部分出现问题会发生什么?我不想抑制这样的错误。 (12认同)