Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 查找-抑制“;没有这样的文件或目录;错误_Bash_Unix_Find - Fatal编程技术网

Bash 查找-抑制“;没有这样的文件或目录;错误

Bash 查找-抑制“;没有这样的文件或目录;错误,bash,unix,find,Bash,Unix,Find,我可以在grep中使用-s来抑制错误,但是我在手册页中没有看到与find命令等效的命令。。。是重定向STDERR>/dev/null的唯一选项吗 还是有一个选项可以处理这个问题?(如果需要,可以使用fancyawk和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_cont

我可以在
grep
中使用
-s
来抑制错误,但是我在手册页中没有看到与
find
命令等效的命令。。。是重定向STDERR>/dev/null的唯一选项吗

还是有一个选项可以处理这个问题?(如果需要,可以使用fancy
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
将只在与此模式匹配的目录中搜索。

重定向stderr有什么问题?为什么要使用awk和perl等外部工具?在不知道问题出在哪里的情况下,很难提出解决方案您可以在调用find
test-d/mnt/16_c/$dir/data/&&find之前测试目录是否存在……
所以根本不需要重定向谢谢,没有想到通配符会阻止这一点!如果
-exec
部分出现问题,会发生什么情况?我不想犯这样的错误。