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