我有几个关于该find
命令的问题。
如何显示 /var 目录(及以下目录)内有多少文件和目录(仅结果编号)由您或 root 以外的其他人拥有。
和上面一样,不过这次是显示有多少用户。
修改命令以显示其他所有者(按字母顺序)以及输出编号。它应该是这样的:
1 avahi-autoipd 2色 3个守护进程 4 目录 5 利布乌伊德 6 LP 7人 8 米DM 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
第三部分:
sudo ls -oAu1QBR /var | tr -s ' ' | cut -d' ' -f3 | grep -Ev '(\"|root|^[[:space:]]*$)' | grep -v ${USER} | sort -u | nl
答案1
我有没有说过我喜欢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