私の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
ファイル名の前にファイル変更時間をタブで区切って印刷できます。ここで時間形式は単にsort
。sort -r
最新(つまり「最も大きい」)時間を最初に入れるには、逆の順序で並べ替えます。
改行文字を含むファイル名の場合、これはわずかに減少します。この問題は、printf文字列を終了せずに\n
null\0
で終わるファイル名を使用して解決できます。次に--zero-terminated
ソートオプションを追加し、| tr '\0' '\n'
最後に入れてnullバイトを改行文字に変換します。