GNU/Linux >> Linux の 問題 >  >> Linux

Cpスイッチを使用して特定の日付の後に変更されたファイルをコピーしますか?

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


Linux
  1. chrootを使用した後、SFTPユーザーをバインドマウントします

  2. Bashを使用して特定のファイルのmtimeを取得しますか?

  3. bashでインストールを使用してディレクトリをディレクトリにコピーする方法は?

  1. LinuxでsFTPを使用してファイル/ディレクトリをアップロードまたはダウンロードする方法

  2. scp を使用して複数のファイルを同時にコピーする方法

  3. 特定の日付のファイルを検索して削除する

  1. Linuxで特定のディレクトリまたは別のディレクトリにtarファイルを抽出する方法

  2. Ansibleガイド:Ansibleを使用してファイルを管理する

  3. 特定の日に変更されたすべてのファイルを取得しますか?