Is there any way to force cp (Bash 4.2.5, Ubuntu 12.04) to copy onto a dangling symlink?

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

cp -f seems to be impotent in this case and results in the same message.

  • Did you try using cp -f instead? Nov 19, 2014 at 18:49
  • @RohithMadhavan yep; same message (I just updated the question) Nov 19, 2014 at 18:58

2 Answers 2


Make cp remove the target file before copying:

$ 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

From man cp:

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

Just use unlink theSymLink where theSymLink is the actual symlink, then try again

  • 7
    This will work, but note that unlink has the same effect as (and thus no advantage compared to) the more commonly used rm. In particular, like rm foo, unlink foo will delete a file foo even when it is a regular file and not a symbolic link. Using unlink instead of rm (or mv --remove-destination ...) does not guard against accidental data loss. Apr 27, 2015 at 20:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .