web-dev-qa-db-ja.com

findの出力をソートする方法は?

私はfindコマンドを使用して、文字列を含む名前のファイルを一覧表示しています:find ~/ -type f -name "*inductive*"パイプを使用して、結果のファイルのリストを並べ替えたいと思います。ファイルサイズ、作成日、アクセス日で並べ替えることができます...どうすればよいですか?ありがとう。

4
Canaryyellow

Linuxでは、出力を作成時間でソートすることはできません(ctimeはファイル作成日ではありません)。 statには、_%w_および_%W_形式のタグを使用してファイルの誕生時間を表示する機能がありますが、常に_-_および_0_、それぞれ、作成時間/誕生時間を保存するファイルシステムでも。したがって、Linuxではこの目的には実質的に役に立ちません。

ただし、他の2つの並べ替え順序は可能です。

_# Sort by size:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 5 -n

# Sort by access time:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 6 -M
_

_-r_フラグをsortに追加して、並べ替え順序を逆にすることができます。詳細については、_man sort_を参照してください。

findの出力のサイズによっては、sortがソートされた出力を生成するのに時間がかかる場合があります。

3
Larssend