bash - 查找 - 抑制 "No such file or directory"错误

标签 bash unix find

我可以在 grep 中使用 -s 来抑制错误,但我没有在 man 中看到与 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

最佳答案

您可以使用 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 只会在与此模式匹配的目录中搜索。

关于bash - 查找 - 抑制 "No such file or directory"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45575021/

相关文章:

python - 用新格式替换现有日期

unix - Grep OR 操作符不工作

bash - 使用 Bash 时需要转义哪些字符?

linux - 当文件名包含空格时 xargs 失败

python - 使用 re.findall 捕捉单词

bash - 权限在查找 : why do we need 2>&1? 中被拒绝

bash - 如何在codesign中文本匹配特定行以检查其签名是否正确

linux - 退出在主机上运行的 shell 脚本

linux - 用于在正确路径中运行 Java 类的通用脚本

php - CakePHP 查找没有 HABTM 关系记录的项目