コマンドfind . -mtime -60
過去60日以内に変更されたファイルのリストを取得しました。
したがって、find . -mtime -60 -exec cp {} /tmp/1 \;
これらのファイルを新しいディレクトリにコピーして処理できます
ただし、タイムスタンプを保持したい場合、find . -mtime -60 -exec cp -LR --preserve=timestamps {} /tmp/2 \;
最終的には、必要なファイルだけでなく、ソースディレクトリ内のすべてのファイルがコピーされます。
ここに解決策はありますか?
承認された回答:
ここで起こっていることは、-R
を使用すると cp
のオプション 引数としてディレクトリを指定すると、すべてがコピーされます。 そのディレクトリにあります。さらに、下位ディレクトリのファイルは/tmp/2
に直接コピーされるため、これではディレクトリ構造は保持されません。 。これはあなたが望むものかもしれませんが(この方法についてはX Tianの回答を参照してください)、同じ名前のファイルがある場合は、宛先で一方が他方を上書きすることに注意してください。
ディレクトリ構造を保持するには、cpio
を使用できます :
find . -mtime -60 -print0 | cpio -0mdp /tmp/2
-0
の場合 (または同等の)オプションは使用できません。これは可能ですが、ファイル名に改行が含まれていないことに注意してください:
find . -mtime -2 | cpio -mdp /tmp/2
cpio
-L
もサポートする必要があります オプションですが、場合によっては無限ループが発生する可能性があるため、これには注意してください。