Command-Line
查找命令:顯示文件編號
我有幾個關於
find
命令的問題。
- 如何顯示 /var 目錄(及以下)中有多少文件和目錄(僅結果編號)由您或 root 以外的人擁有。
- 同上,但這次是顯示有多少使用者。
- 修改命令以顯示其他所有者(按字母順序),輸出編號。它應該是這樣的:
1 avahi-autoipd 2 色 3 守護程序 4 調光 5 libuuid 6 LP 7人 8 米 9 ntp 10 語音調度員 11 系統日誌
這些問題中的每一個都應該使用 3 個單獨但非常相似的命令行。
編輯:我自己想出來的
sudo find /var/ -not -user root -not -user myusername | wc -l
sudo find /var/ -not -user root -not -user myusername -printf '%u\n' | sort -u | wc -l sudo find /var/ -not -user root -not -user myusername -printf '%u\n' | sort -u
這些命令行也會做同樣的事情: 第 1 部分:
sudo ls -oAu1QBR /var | tr -s ' ' | cut -d' ' -f3 | grep -Ev '(\"|root|^[[:space:]]*$)' | grep -v ${USER} | wc -l
第2部分:
sudo ls -oAu1QBR /var | tr -s ' ' | cut -d' ' -f3 | grep -Ev '(\"|root|^[[:space:]]*$)' | grep -v ${USER} | sort -u | wc -l
第 3 部分:
sudo ls -oAu1QBR /var | tr -s ' ' | cut -d' ' -f3 | grep -Ev '(\"|root|^[[:space:]]*$)' | grep -v ${USER} | sort -u | nl
我是否已經提到我喜歡zsh 的 glob 限定符?
files_in_var_not_owned_by_me_or_root=(/var/**/*(^u0u$UID)) echo $#files_in_var_not_owned_by_me_or_root typeset -U owners_of_files_in_var zstat -s -A owners_of_files_in_var +uid -- $files_in_var_not_owned_by_me_or_root echo $#owners_of_files_in_var i=1 for x in ${(o)owners_of_files_in_var}; do printf '%4d %s\n' $((i++)) $x done