rsyncを使用してシンボリックリンクとそれが指す場所をコピーします。

rsyncを使用してシンボリックリンクとそれが指す場所をコピーします。

によって行われる必要はありませんが、rsyncこれを行うためにスクリプトを書く必要がない場合は良いでしょうrsync

rsync -a(または-l)シンボリックリンクは保存でき、-Lシンボリックリンクは通常のファイル/ディレクトリのように逆参照してコピーすることができます。しかし、シンボリックリンクを維持し、リンクが指すファイル/ディレクトリをコピーすることは可能ですか?

ここに例があります。次のフォルダ階層があるとしましょう。

dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others

このタスク(または他のタスク)を実行すると、rsync -aR dirA dest次のものが表示されますdest

dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2

可能ですかrsync?ありがとうございます。

絶対パスがあるか、ソースディレクトリの外部を指すシンボリックリンクは無視される可能性があるとします。

ベストアンサー1

シンボリックリンク名を知って送信したい場合協会そしてターゲットあなたはできます:

rsync -a 'symlink' .
realdir="$(basename "$(readlink -f 'symlink')")"
rsync -a "$realdir" .

最初のコマンドrsyncsymlink. 2番目のコマンドは実際のディレクトリ名を見つけ、2番目のコマンドはrsyncディレクトリの内容を送信します。

おすすめ記事