特定の日付範囲内で、ディレクトリ内の最大のファイルを見つけます。

特定の日付範囲内で、ディレクトリ内の最大のファイルを見つけます。

私は、特定の日付範囲に基づいてディレクトリ内の最大20個のファイルを見つけることができるUNIXコマンドまたはコマンドセットを探しています。

これを行うには、いくつかのファイルをタッチしてから、そのファイルの日付に基づいてルックアップを実行して日付範囲を設定できると思いました。つまり

touch /tmp/point.start -d "2018-06-01 00:00"
touch /tmp/point.end -d "2018-06-30 00:00"

その後実行

find . -newer /tmp/point.start ! -newer /tmp/point.end

実行したいディレクトリから最新の20個のファイルをインポートするには、

ls -ltr | sort -nk5 | tail -20

しかし、二人を合わせることはできないと思います。

find . -newer /tmp/point.start ! -newer /tmp/point.end | ls -ltr | sort -nk5 | tail -20

最初の部分を無視し、サイズに関係なく、ディレクトリ内の最大20個のファイルを一覧表示します。私は非常に明白なものを見逃していると確信していますが、何がわかりません!

(私はRedHat 5.3を使用しており、newermtにアクセスできません)

ベストアンサー1

-printf次のように作業できる場合find

find . -newer /tmp/point.start ! -newer /tmp/point.end -printf '%s %p\n' | 
  sort -rn | head -20

おすすめ記事