Linux

Linux find 命令返回不屬於指定使用者的文件和文件的所有者

  • November 4, 2022

我有以下終端命令:

find /home/not_this/ \! -user not_this_user_account

目標是找到所有不屬於指定使用者的文件和目錄,這個版本的find命令效果很好。

但是,我真的很想返回返回的文件和目錄的所有者。

所以:

/home/not_this/test1.html
/home/not_this/test2.html

會返回這個:

someone_else /home/not_this/test1.html
someone_else /home/not_this/test2.html

或者返回這個:

/home/not_this/test1.html someone_else
/home/not_this/test2.html someone_else

如何使用該find命令返回不屬於指定使用者的文件/目錄以及這些文件/目錄的所有者?

因為我不認為自己精通 Linux 終端,所以我同意使用不同的命令,只要它返回所需的結果並且不需要某種特殊條件(例如,下載和安裝不是在幾乎每個 Linux 發行版上)。

大多數find實現允許您使用該printf函式格式化它們的輸出。

請諮詢您自己的系統man find以了解實際支持的格式選項。

Using-printf '%u\t%p\n'給了我一個 TAB ( \t) 分隔的列表,其中包含使用者名%u (或 UID 號,當它無法解析為使用者名時)和完整的文件名,包括 path %p。需要換行符\n,否則您看不到每行一個項目。

find /home/not_this/ \! -user not_this_user_account -printf '%u\t%p\n' 

給出一個列表,例如:

diya    /home/bla
diya    /home/bla/file-1
diya    /home/blaa
diya    /home/blaa/file-2
diya    /home/blaa/images & screenshots
unbound /home/blaa/images & screenshots/Screenshot 2022-11-03 11:02.PNG
diya    /home/blaa/images & screenshots/image-2.jpg
diya    /home/blaa/images & screenshots/image-1.jpg
diya    /home/blaa/file-3
diya    /home/blaa/1
diya    /home/blaa/1/file.txt

引用自:https://serverfault.com/questions/1114808