検索コマンド:ファイル番号を表示[オフ]

検索コマンド:ファイル番号を表示[オフ]

findこのコマンドについていくつかの質問があります。

  1. / varディレクトリ(およびそれ以下)内で、ユーザーまたはルート以外の人が所有するファイルとディレクトリの数(結果番号のみ)を表示する方法。

  2. 上記と同じですが、今回はユーザー数を表示します。

  3. 出力番号とともに別の所有者(アルファベット順)を表示するようにコマンドを変更します。次のようにする必要があります。

   avahi-autoipd 1個
   2色
   デーモン3個
   4 目次
   5ライブラリUID
   6LP
   7人
   8メートルDM
   9ntp
  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

答え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

関連情報