負荷の高いディレクトリで最も古いファイルを(再帰的に)見つける最も安い方法

負荷の高いディレクトリで最も古いファイルを(再帰的に)見つける最も安い方法

ディレクトリ(以下のすべてのディレクトリを含む)で最も古いファイルを見つける最も安い方法は何ですか?ディレクトリがSANによってサポートされ、負荷が高いと仮定します。

過負荷状態で「ls」がロックされ、システムの性能が低下する恐れがあります。

編集:Findは簡単なテストケースで非常によく行われました。 SSDドライブの400GBファイルの中で最も古いファイルを見つけるのに1/20秒かかりました。しかし、これは無負荷状態のMacBook Proなので、少しのリンゴとオレンジのテストケースです。

しかし、そのようなコマンドの実装(基本アルゴリズム)を見つけるための最良の方法は何ですか?

ベストアンサー1

そしてzsh

oldest=(**/*(.DOm[1]))

最も古い一般ファイルの場合(zsh時間解像度は秒)

GNUツールの使用:

(export LC_ALL=C
 find . -type f -printf '%T@\t%p\0' |
   sort -zg | tr '\0\n' '\n\0' | head -n 1 |
   cut -f2- | tr '\0' '\n')

おすすめ記事