使用 find-command 时避免权限被拒绝的垃圾邮件

use*_*167 21 bash find

我经常尝试使用以下语法查找文件:

find . -name "filetofind"
Run Code Online (Sandbox Code Playgroud)

但是,它通常会导致有关权限被拒绝的文件夹的行数或错误报告(权限被拒绝)。除了使用错误输出中的 sudo 或高级 grepping 之外,还有其他方法可以避免这种垃圾邮件吗?

whi*_*ark 27

尝试

find . -name "filetofind" 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

这会将stderr用于报告所有错误(包括“拒绝访问”)的输出流重定向到空设备。


sda*_*aau 10

您还可以使用-perm-prune谓词来避免进入不可读的目录(另请参阅如何从查找程序中删除“权限被拒绝”打印输出语句? - Unix & Linux Stack Exchange):

find . -type d ! -perm -g+r,u+r,o+r -prune -o -name "filetofind" -print
Run Code Online (Sandbox Code Playgroud)