find の出力を並べ替えるにはどうすればいいですか?

find の出力を並べ替えるにはどうすればいいですか?

find コマンドを使用して、名前に文字列が含まれるファイルを一覧表示しています。 find ~/ -type f -name "*inductive*" パイプを使用して、結果のファイル一覧を並べ替えたいと思います。ファイル サイズ、作成日、アクセス日などで並べ替えられるようにしたいと思います。どうすればいいでしょうか? よろしくお願いします。

答え1

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

関連情報