すべてのファイルが異なる場合は、同じパス/名前ファイルを使用してあるドライブから別のドライブに再帰的に移動し、ファイル名に変更時間を追加して古いファイルの名前を変更する必要があります。同じパス/名前のファイルを上書きします。ファイルサイズは5Kから500Mまでです。
以下は、私が作成したテスト環境のツリーといくつかの説明です。
/bmrlbackup/drive1/
`-- user001
`-- directory1
`-- project001
|-- file000 #identical
|-- file001 #older same name
|-- file0011 #unique
|-- phase1
| |-- file000 #identical
| |-- file110 #unique
| |-- file999 #newer same name
| `-- phase11
| `-- file111 #unique
`-- phase2
`-- file120 #unique
/bmrlbackup/drive2/
`-- user002
`-- directory2
`-- project001
|-- file000 #identical
|-- file001 #newer same name
|-- file0012 #unique
|-- phase1
| |-- file000 #identical
| |-- file210 #unique
| `-- file999 #older same name
`-- phase2
|-- file220 #unique
`-- phase21
`-- file221 #unique
rsync 移動固有ファイル出力:
#rsync -a --ignore-existing --remove-source-files $sd1/ $dd1/
project001/
project001/file0011
project001/phase1/
project001/phase1/file110
project001/phase1/phase11/
project001/phase1/phase11/file111
project001/phase2/
project001/phase2/file120
移動する残りのファイル:
#remm="ls -1 $(find $sd1/ -type f)"
/bmrlbackup/drive1/user001/directory1/project001/file000
/bmrlbackup/drive1/user001/directory1/project001/file001
/bmrlbackup/drive1/user001/directory1/project001/phase1/file000
/bmrlbackup/drive1/user001/directory1/project001/phase1/file999
ここでは、両方の場所に同じファイルがあるので、移動して上書きする必要があります。
/bmrlbackup/drive1/user001/directory1/project001/file000
/bmrlbackup/drive1/user001/directory1/project001/phase1/file000
名前は同じですが、内容が異なるファイルは次のとおりです。
/bmrlbackup/drive1/user001/directory1/project001/file001
/bmrlbackup/drive1/user001/directory1/project001/phase1/file999
「名前は同じですが内容が異なる」ファイルを比較し、古いファイルの名前を変更して変更日時を追加する必要があります。したがって、ソースが最新の場合は、ターゲットファイルの名前を追加してソースを移動します。ソースが古い場合は、ソース名を追加し、名前の追加ソースを移動します。
このプロセスの結果、最終的にすべてのファイルがドライブ1からドライブ2に移動されます。
お願いします、助けてください!
答え1
"diff" を使用してファイルを 1 行ずつ比較できます。この投稿も確認してください。時間を探す。その後、mvコマンドを使用して古いファイルを移動できます。
答え2
--update と --backup と一緒に rsync を双方向に使用します。
-u, --update skip files that are newer on the receiver
-b, --backup make backups (see --suffix & --backup-dir)