ダングリングシンボリックリンクでcpを強制的にコピーする


15

cpぶら下がっているシンボリックリンクに強制的にコピーする方法はありますか(Bash 4.2.5、Ubuntu 12.04)?

cp a-file path/to/danling/symlink/a-file
cp: not writing through dangling symlink `path/to/danling/symlink/a-file`

cp -f この場合は無力であると思われ、同じメッセージが表示されます。


cp -f代わりに使用してみましたか?
ロヒスマダヴァン14

@RohithMadhavanうん; 同じメッセージ(質問を更新しました)
マーカスジュニウスブルータス14年

回答:


21

cpコピーする前にターゲットファイルを削除します。

$ ln -s /random/file f              
$ cp -f a f                  
cp: not writing through dangling symlink ‘f’
$ cp --remove-destination a f
$ diff a f && echo yes
yes

からman cp

--remove-destination
      remove  each existing destination file before attempting to open
      it (contrast with --force)

2

実際のシンボリックリンクがあるunlink theSymLink場所を使用しtheSymLinkて、もう一度やり直してください


3
これは機能しますがunlink、より一般的に使用されるのと同じ効果があるため、利点がありませんrm。特に、のようにrm foo、シンボリックリンクではなく通常のファイルであってもunlink fooファイルを削除しますfoo。(または)のunlink代わりに使用して、偶発的なデータ損失を防ぐことはできませrmmv --remove-destination ...
エリアケイガン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.