Find

POSIX 查找所有不可讀的文件

  • September 13, 2018

我試圖在另一個使用者擁有的子目錄中找到所有不可讀的“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指定)。

引用自:https://unix.stackexchange.com/questions/468736