新しいターゲットへのrsyncリンク

新しいターゲットへのrsyncリンク

ある場所から別の場所にディレクトリ構造をコピーする必要があります。フォルダとシンボリックリンクをコピーするだけです。

私はコマンドを使用します

find $SOURCE_PATH/ \( -type l -o -type d \)  -printf "%P\0" | rsync --files-from - --from0 -av  $SOURCE_PATH $USER@$DESTINATION_SERVER:/$DESTINATION_PATH/$SOURCE_PATH

コマンドが成功すると、フォルダとリンクがコピーされます。私の問題は、リンクが以前の宛先を指しているためです。
私のソースパスはアプリケーション/cg/devと 宛先パスはTMP/アプリケーション/cg/dev これで、コピーしたリンクはapp/cg/dev/somefolderを指します。私は彼らが指す必要がありますtmp/app/cg/dev/somefolder.

すべてのリンクを同期した後に変更する良い方法は、ターゲットパスをリンクするのではなくリンクパスを読むことができる場合です。はい

find . -type l | while read l; do
concatenate destination folder and readlink l
done

誰かがこのコードを書くのに役立ちますか?

ベストアンサー1

おすすめ記事