ファイルが多すぎる大きなディレクトリがあります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番目の必須行のみを考慮します。