大きなディレクトリで最大ファイルサイズを見つける方法

大きなディレクトリで最大ファイルサイズを見つける方法

ファイルが多すぎる大きなディレクトリがありますls。私の考え:次を使用してください。

find . -name * -exec wc -c < {} \; | sort | tail -n 1

問題:シェルはこれを(find . -name * -exec wc -c)<({} \;)...と解釈します。

< {}ファイル名sort

私も試しました

find . -name "*" -exec cat {} +| wc -c

しかし、これは次のように解釈されるようです。 (find . -name "*" -exec cat {}) (wc -c) - ファイル全体を合わせたサイズを示します。

まだ一つあります。duのバリエーションを使う- しかし、最大のファイルはおそらく数バイトしか離れていないため、500 KBのサイズを持つ百万のファイルのみが表示されます。繰り返しますが、lsが処理するには多すぎます。

ベストアンサー1

最大ファイル(KB単位のサイズ)を印刷するにはエルエス方法:

ls -S1s --block-size=K | sed -n '2{p;q;}'

  • -S- ファイルサイズ別に並べ替え(大きなファイルから)

  • -s- 各ファイルの割り当てられたサイズをブロック単位で出力

  • -1- 1行に1つのファイルを一覧表示

  • sed -n '2{p;q;}'- 出力の最初の行lsはサイズのある行ですtotal(例total 388K:)。 2行目は、最大のファイルとサイズを含む行です。この式は、2番目の必須行のみを考慮します。

おすすめ記事