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

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

我经常尝试查找具有以下语法的文件:

find . -name "filetofind"

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

答案1

尝试

find . -name "filetofind" 2>/dev/null

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

答案2

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

find . -type d ! -perm -g+r,u+r,o+r -prune -o -name "filetofind" -print

答案3

如果您想查看其他错误并且没有名为“权限被拒绝”的文件,那么这将“更好”。

find . -name "filetofind" 2>&1 | grep -v 'permission denied' 

使用反转选项将输出重定向到 grep。

相关内容