外部ファイル/ディレクトリへのシンボリックリンクは確認されますが(ターゲットファイルのコピー)内部シンボリックリンク(コピーツリー内のファイルを指す)は、保持されているディレクトリを繰り返しコピーする簡単な方法はありますか?
例:
touch outsidefile
mkdir src
ln -s ../outsidefile src/sym1
touch src/insidefile
ln -s insidefile src/sym2
cp [???] src dest # or other command
望ましい結果:
$ ls dest
insidefile
sym1
sym2 -> insidefile
つまりsym1
、シンボリックリンクを維持する一般的なファイルですsym2
。
答え1
rsync -a --copy-unsafe-links src/ dest
man
ページから:
--安全でないリンクのコピー
これは、rsync にコピーツリーの外側のシンボリックリンクへの参照をコピーするように指示します。
--relative
ソースパス自体のすべてのシンボリックリンクと同様に、絶対シンボリックリンクも使用時に通常のファイルとして扱われます。このオプションも指定した場合、追加--copy-links
の効果はありません。[...]
--links --安全でないリンクのコピー 安全でないすべてのシンボリックリンクをファイルに変換し、すべての安全なシンボリックリンクをコピーします。