POSIX 查找所有不可读的文件

Pie*_*ume 5 find posix

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

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

Sté*_*las 8

你总是可以这样做:

find . -exec sh -c '
  for file do
    [ -r "$file" ] || printf "%s\n" "$file"
  done' sh {} +
Run Code Online (Sandbox Code Playgroud)

列出没有读取权限的文件。

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

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

在 FreeBSD 上,您还应该能够:

find . -print0 | perl -Mfiletest=access -l -0ne 'print unless -r'
Run Code Online (Sandbox Code Playgroud)

或者

sudo find . -print0 | perl -Mfiletest=access -l -0ne 'print unless -r'
Run Code Online (Sandbox Code Playgroud)

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

(均未sudo-print0也不perl是由POSIX指定)。