特定の日付(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
オプションをサポートしているわけではありません。 GNUmv
(Linux)はそうです。