最近更新された10個のファイルを印刷して検索結果を並べ替えるにはどうすればよいですか?

最近更新された10個のファイルを印刷して検索結果を並べ替えるにはどうすればよいですか?

私のLinuxコンピュータでは、ユーザーが最近編集したファイルを知りたいです。

/home最近編集された最大10個のファイルを繰り返し検索したいとしましょう。

findコマンドまたは他のソリューションを使用してこれをどのように実行できますか?

期待される出力の例:

27/6/2018 11:23 /home/my_data/file
27/6/2018 10:21 /home/top/oo/pp/file
27/6/2018 09:23 /home/my_data/GG/file

ベストアンサー1

現在のディレクトリで最新の10個のファイルを探します。

find -type f -printf "%TY-%Tm-%Td %TH:%TM:%TS\t%h/%f\n" | sort -r | head -n 10

オプションで| cut -f2時間情報を削除するには、追加してください。

この-printfオプションを使用すると、findファイル名の前にファイル変更時間をタブで区切って印刷できます。ここで時間形式は単にsortsort -r最新(つまり「最も大きい」)時間を最初に入れるには、逆の順序で並べ替えます。

改行文字を含むファイル名の場合、これはわずかに減少します。この問題は、printf文字列を終了せずに\nnull\0で終わるファイル名を使用して解決できます。次に--zero-terminatedソートオプションを追加し、| tr '\0' '\n'最後に入れてnullバイトを改行文字に変換します。

おすすめ記事