ディレクトリ内の最新の変更されたファイルを再帰的に見つけるにはどうすればいいですか? 質問する

ディレクトリ内の最新の変更されたファイルを再帰的に見つけるにはどうすればいいですか? 質問する

ls再帰呼び出しを行うと、ファイルが正しくソートされないようです。

ls -altR . | head -n 3

ディレクトリ(サブディレクトリを含む)内で最後に変更されたファイルを見つけるにはどうすればよいですか?

ベストアンサー1

find . -type f -printf '%T@ %p\n' \
| sort -n | tail -1 | cut -f2- -d" "

巨大な木の場合、sortすべてを記憶しておくのは難しいかもしれません。

%T@UNIX タイムスタンプのように変更時刻を表示し、sort -n数値順にソートし、tail -1最後の行 (最も高いタイムスタンプ) を取得し、cut -f2 -d" "出力から最初のフィールド (タイムスタンプ) を切り取ります。

編集:-printfおそらく GNU のみであるのと同様に、ajreals の使用も同様stat -cです。BSD でも同じことが可能ですが、フォーマットのオプションは異なります (-f "%m %N"と思われます)

また、複数形の部分を見逃していました。最新のファイルよりも多くのファイルが必要な場合は末尾の引数を増やすだけです。

おすすめ記事