find
このコマンドについていくつかの質問があります。
/ varディレクトリ(およびそれ以下)内で、ユーザーまたはルート以外の人が所有するファイルとディレクトリの数(結果番号のみ)を表示する方法。
上記と同じですが、今回はユーザー数を表示します。
出力番号とともに別の所有者(アルファベット順)を表示するようにコマンドを変更します。次のようにする必要があります。
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