Find
POSIX 查找所有不可讀的文件
我試圖在另一個使用者擁有的子目錄中找到所有不可讀的“ACL-wise”
www-data
,並且在“FreeBSD”伺服器上。該伺服器阻止我使用該命令find . ! -readable
如何在目錄中找到所有不可讀的(目前使用者)文件?
你總是可以這樣做:
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
指定)。