特定の最後の変更日を含むファイルをアーカイブ内のファイル(または日付)に置き換えます。

特定の最後の変更日を含むファイルをアーカイブ内のファイル(または日付)に置き換えます。

私のハードドライブの容量がほとんどいっぱいです(ほとんど/home)。私はより大きな新しいドライブをインストールし、そこ/homeにコピーした後、生き続けました。

2013年5月17日です。すべてをコピーするときにアーカイブフラグを忘れてしまったので、その日付が2013年5月17日であることを知っています。したがって、それ以降更新されていないサーバー上のすべてのファイルの日付は、2013年5月17日です。

最後に変更された日付が正しいソース/homeディレクトリ()がまだ残っています。/oldhome

/home2013年5月17日日付のすべてのファイルを対応する元のファイル/oldhome(正しい日付はそのまま残す)に置き換えるスクリプトを作成するには開始点が必要です。その日に存在していた一部のファイルが後で更新されたため、2013年5月17日のファイルのみを交換したいとし、そのファイルの更新されたバージョンを維持したいと思います。

ファイル数は約/oldhome63Kです。

どこから始めるべきか悩んでいますか?

編集する

「いいね!」

...中から/homefind -type f -newermt 2013-5-17 ! -newermt 2013-5-18 -print0 | xargs -I % -0 rsync -avzI --dry-run /oldhome% /home%

...そうかもしれないと思います。ほぼそこに。出力には、findrsyncコマンドのパスを分割する前のピリオドがあります(/oldhome./directory/filename /home./directory/filename.extすべてが接続されたときに得られました)。find先行ピリオドを省略するために、どのような方法でステートメントを再作成できますか?目標は、/home5/のパスを識別することです。 2013年5月17日以降の日付の17/2013ファイルを削除し、そのファイルを元のコピーに置き換えます。 2013年5月17日以降の日付のファイルは/oldhomeありません。/oldhome

ベストアンサー1

おすすめ記事