POSIX 查找所有不可读的文件

POSIX 查找所有不可读的文件

www-data我试图在另一个用户拥有的子目录中以及“FreeBSD”服务器上找到所有不可读的“ACL-wise” 。该服务器阻止我使用该命令find . ! -readable

如何找到目录中所有不可读(当前用户)的文件?

答案1

你总是可以这样做:

find . -exec sh -c '
  for file do
    [ -r "$file" ] || printf "%s\n" "$file"
  done' sh {} +

列出文件没有读取权限。

请注意,对于符号链接,它会检查符号链接的目标。

显然,它也不会报告您没有读取权限的目录中的文件(其中可能包含您具有读取权限的文件(前提是您对该目录具有搜索权限)和/或您没有读取权限的文件)。

在 FreeBSD 上,您还应该能够执行以下操作:

find . -print0 | perl -Mfiletest=access -l -0ne 'print unless -r'

或者

sudo find . -print0 | perl -Mfiletest=access -l -0ne 'print unless -r'

还列出您没有读取权限的目录中的文件。

(POSIX既没有指定sudo-print0也没有指定)。perl

相关内容