私のハードドライブの容量がほとんどいっぱいです(ほとんど/home
)。私はより大きな新しいドライブをインストールし、そこ/home
にコピーした後、生き続けました。
2013年5月17日です。すべてをコピーするときにアーカイブフラグを忘れてしまったので、その日付が2013年5月17日であることを知っています。したがって、それ以降更新されていないサーバー上のすべてのファイルの日付は、2013年5月17日です。
最後に変更された日付が正しいソース/home
ディレクトリ()がまだ残っています。/oldhome
/home
2013年5月17日日付のすべてのファイルを対応する元のファイル/oldhome
(正しい日付はそのまま残す)に置き換えるスクリプトを作成するには開始点が必要です。その日に存在していた一部のファイルが後で更新されたため、2013年5月17日のファイルのみを交換したいとし、そのファイルの更新されたバージョンを維持したいと思います。
ファイル数は約/oldhome
63Kです。
どこから始めるべきか悩んでいますか?
編集する
「いいね!」
...中から/home
:
find -type f -newermt 2013-5-17 ! -newermt 2013-5-18 -print0 | xargs -I % -0 rsync -avzI --dry-run /oldhome% /home%
...そうかもしれないと思います。ほぼそこに。出力には、find
rsyncコマンドのパスを分割する前のピリオドがあります(/oldhome./directory/filename /home./directory/filename.ext
すべてが接続されたときに得られました)。find
先行ピリオドを省略するために、どのような方法でステートメントを再作成できますか?目標は、/home
5/のパスを識別することです。 2013年5月17日以降の日付の17/2013ファイルを削除し、そのファイルを元のコピーに置き換えます。 2013年5月17日以降の日付のファイルは/oldhome
ありません。/oldhome