検索出力の ls -lS は出力をソートしません。

検索出力の ls -lS は出力をソートしません。

ご存知のように、ls -Sすべてのファイルはサイズ別に並べ替えて一覧表示されます。

私が望むのは、/usrディレクトリ内のすべてのファイルをサイズでソートして一覧表示することです。だから、次のコマンドを実行しました。

find /usr -type f -exec ls -lS {} \;

ただし、このコマンドはサイズでソートされたすべてのファイルを一覧表示していないようです。-Sここでは動作しません。

ベストアンサー1

明示的にファイル()の検索を要求し、findファイルが見つかったらその-type fファイルで実行するように要求しました。この問題を解決するために、ls -lSGNU Finder Extensionを使用して複数の一致するファイルを一度に渡すこともできません。同時に渡す+ファイルが多すぎる可能性があるためです。ls

代わりに、GNU findを使用してファイルサイズとファイル名を印刷するように要求し、それらをsortすべてnullで区切ってに渡します。

find /usr -type f -printf "%s %p\n\0"|sort -zn

出力例:

0 /usr/lib/python2.7/dist-packages/pkg_resources/_vendor/__init__.py
0 /usr/lib/python2.7/dist-packages/python_debian-0.1.30.egg-info/requires.txt
0 /usr/lib/python2.7/email/mime/__init__.py
... output omitted ...
24013304 /usr/lib/gcc/i686-linux-gnu/6/cc1plus
25675008 /usr/lib/i386-linux-gnu/libicudata.so.57.1
49547156 /usr/lib/i386-linux-gnu/libLLVM-3.9.so.1

おすすめ記事