4

シンボリックリンクされたフォルダーを含むフォルダーがあります。

root
 |- Current document -> version 2 document
 |- Current folder -> version 2 folder
 |- Archives
     |- version 1 document
     |- version 1 folder
         |- ...
     |- version 2 document
     |- version 2 folder
         |- ...

このディレクトリを でコピーするとcp -r、フォルダがコピーされますが、-rシンボリックリンクをたどっているため、バージョン 2 が 2 回コピーされます。

でこのディレクトリをコピーするとcp -R、フォルダは最初に正常にコピーされ、シンボリックリンクが保持されます。ただし、2 番目のコピーでは、フォルダーを上書きできず、次のように述べています。

cp: cannot overwrite directory 'Current folder' with 'Current folder'

cp -a==cp -pPR-fバージョン (cp -fRおよびcp -fa)も試しました

Current Folderシンボリックリンクをたどってフォルダーであるかどうかを確認し、シンボリックリンク(フォルダーと見なされる)をシンボリックリンクで上書きできないかどうかを確認するテストだと思います。

シンボリックリンクされたフォルダーでフォルダーを一貫してコピーおよび上書きするための正しいコマンドは何ですか?

4

2 に答える 2

5

OSXでは、使用ditto

これは、osx のコピー/貼り付けと同じ動作をします。


あなたが気をつけたいかもしれないPS Oneの落とし穴:

cp -a foo bar

フォルダー foo/ を bar/ に移動します (つまり、bar/foo/file1、bar/foo/file2)

ditto foo bar

フォルダー foo/ の内容を bar (つまり、bar/file1、bar/file2) に移動します。

于 2013-08-21T22:30:11.130 に答える