Command-Line

查找命令:顯示文件編號

  • June 5, 2015

我有幾個關於find命令的問題。

  1. 如何顯示 /var 目錄(及以下)中有多少文件和目錄(僅結果編號)由您或 root 以外的人擁有。
  2. 同上,但這次是顯示有多少使用者。
  3. 修改命令以顯示其他所有者(按字母順序),輸出編號。它應該是這樣的:
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

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