同じ名前のあるディレクトリから別のディレクトリに再帰ファイルを移動する方法古いファイルの名前を変更し、変更時間を追加します。

同じ名前のあるディレクトリから別のディレクトリに再帰ファイルを移動する方法古いファイルの名前を変更し、変更時間を追加します。

すべてのファイルが異なる場合は、同じパス/名前ファイルを使用してあるドライブから別のドライブに再帰的に移動し、ファイル名に変更時間を追加して古いファイルの名前を変更する必要があります。同じパス/名前のファイルを上書きします。ファイルサイズは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)

関連情報