cpは、ソースと同じ名前のディレクトリにシンボリックリンクされたディレクトリに再帰します。

cpは、ソースと同じ名前のディレクトリにシンボリックリンクされたディレクトリに再帰します。
cp -r src/* dest/

src/dest/両方にディレクトリが含まれている場合は、foo内容がsrc/foo/にコピーされますdest/foo/。これは必須です。

dest/代わりに、他のディレクトリへのシンボリックリンクが含まれていると、foo -> /sym/fooコマンドでエラーが発生します。

cp: ディレクトリではなく 'dest/foo' を 'src/foo' ディレクトリで上書きできません。

以下をコピーできますか?ターゲットGNUを使用したシンボリックリンクcp?私が知っている限り、次のオプションには1つのオプション(-L/)しかありません。--dereference源泉シンボリックリンク。

答え1

これを行うには、rsync「オプション」を使用できます。--keep-dirlinks

からman rsync (1)

-K, --keep-dirlinks

このオプションを使用すると、受信者はディレクトリへのシンボリックリンクを物理ディレクトリとして扱いますが、送信者の実際のディレクトリと一致する場合にのみ適用されます。このオプションがないと、受信者のシンボリックリンクが削除され、実際のディレクトリに置き換えられます。

たとえば、「ファイル」ファイルを含む「foo」ディレクトリを送信しましたが、「foo」はシンクの「bar」ディレクトリへのシンボリックリンクであるとします。そうでない場合、--keep-dirlinks受信者はシンボリックリンク「foo」を削除し、それをディレクトリに再作成し、新しいディレクトリにファイルを受け取ります。を使用すると、--keep-dirlinks受信者はシンボリックリンクを維持し、「file」は「bar」で終わります。

例:

rsync -av --keep-dirlinks src/ dest

関連情報