查找命令:显示文件编号

查找命令:显示文件编号

我有几个关于该find命令的问题。

  1. 如何显示 /var 目录(及以下目录)内有多少文件和目录(仅结果编号)由您或 root 以外的其他人拥有。

  2. 和上面一样,不过这次是显示有多少用户。

  3. 修改命令以显示其他所有者(按字母顺序)以及输出编号。它应该是这样的:

   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

相关内容