特定の日付以降に変更されたファイルを移動する

特定の日付以降に変更されたファイルを移動する

特定の日付(7日など)以降に変更されたファイルを別のディレクトリに移動するにはどうすればよいですか?不器用に出力を送ってみました

ls -t | head -n XX

しかし、最近lsを解析するのは良い考えではないことがわかりました。

答え1

あなたは正しいです。解析を避けるのが最善ですls。これと比較して、以下の解決策はfind最も難しいファイル名を扱うことができます。

7日以内に変更された現在のディレクトリ内のすべてのファイルを移動するには、/destination/path次のようにします。

find . -mindepth 1 -maxdepth 1 -mtime -7  -exec mv -t /destination/path {} +

どのように動作しますか?

  • find . -mindepth 1 -maxdepth 1

    現在のディレクトリに属する​​ファイルを探します(現在のディレクトリ自体は検索されません)。

  • -mtime -7

    これはfindファイルのみを選択するように求められます。未満七日。

  • -exec mv -t /destination/path {} +

    これは、find実行mvコマンドに対応するファイルを/destination/path

    これは多くのファイル名がfind置き換えられるため、生成する必要があるプロセスの数が少ないため効率的です。{} +mv

    すべてのバージョンがmvこの-tオプションをサポートしているわけではありません。 GNU mv(Linux)はそうです。

関連情報