というディレクトリがありますroot
。このディレクトリには深くネストされたサブディレクトリがあります。これらのサブディレクトリには、たくさんのファイルがあります。 の中で最大のファイルを見つけたいですroot
。
私しないディレクトリをまったく検索したくありません。最大のディレクトリのサイズは気にせず、最大のファイルを検索したいだけです。
root
|
- subdir1
|
- small file 1
- large file 1
- small file 2
... lots more files
- subdir2
|
- small file 3
- large file 2
および を印刷したいのですlarge file 1
が、、 、または がまたはより大きい場合でも、large file 2
それらについては何も印刷したくありません。私にとっては、それは単なるノイズです。 root
subdir1
subdir2
large file 1
2
Mac のコマンド ラインでこれを実行するにはどうすればよいですか?
答え1
ls
並べ替えてみましょう->
find . -type f -exec ls -S {} + | head -n10
答え2
私が思いついたのはこれです:
find . -type f -exec ls -l {} + | sort -rk 5,5 | head -10
すべてのファイルを検索し (ディレクトリは無視されます)、ls -l
それらのサイズを確認します。それを sort に渡します。5-k 5,5
番目の列 (サイズがある列) で並べ替え、-r
降順に並べ替えるように指定します。 head -10
最大の 10 個 (完全なリストではありません) が表示されます。