
100 MBを超えるファイルが複数あるフォルダのみを一覧表示する方法は?
答え1
そして:find
awk
すべてのファイルを一覧表示 > 100M
$ find . -type f -size +100M
./bar/ok
./foo/okp
./foo/ok
今フィルタリングしてくださいawk
。
$ find . -type f -size +100M -exec dirname {} + |
awk '{dir[$0]++}END{for (i in dir) if (dir[i] >= 2) print i}'
./foo
要求に応じて、100Mを超えるファイルが複数含まれているディレクトリのみを出力します。
実装が複数のディレクトリ同時サポートをサポートしていない場合は、代わりにdirname
コマンドを使用してください。{} \;
find
答え2
%h
GNUツールを使用すると、100MiB()を超えるすべてのファイルのディレクトリを印刷し、すべての重複結果を一度に印刷できますuniq -d
。
改行を含むディレクトリ名を処理するには、NUL文字(\0
およびオプション-z
)を行終端として使用し、最後のステップでそれを改行に変換します。
find . -type f -size +100M -printf '%h\0' | uniq -dz | tr '\0' '\n'
各結果に見つかった一致数(> = 2)を付けるには、-c
次のように追加しますuniq
。
find . -type f -size +100M -printf '%h\0' | uniq -cdz | tr '\0' '\n'