コマンド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もサポートする必要があります オプションですが、場合によっては無限ループが発生する可能性があるため、これには注意してください。