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"
と思われます)
また、複数形の部分を見逃していました。最新のファイルよりも多くのファイルが必要な場合は、末尾の引数を増やすだけです。