Mac: サブディレクトリ内の最大のファイルを再帰的に見つける方法 (すべてのディレクトリを無視)

Mac: サブディレクトリ内の最大のファイルを再帰的に見つける方法 (すべてのディレクトリを無視)

というディレクトリがあります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それらについては何も印刷したくありません。私にとっては、それは単なるノイズです。 rootsubdir1subdir2large file 12

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 個 (完全なリストではありません) が表示されます。

関連情報