我试图在另一个用户拥有的子目录中www-data以及在“FreeBSD”服务器上找到所有不可读的“ACL-wise” 。此服务器阻止我使用该命令find . ! -readable
如何在目录中找到所有不可读(当前用户)的文件?
你总是可以这样做:
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指定)。