97

I have a symbolic link to a file in one directory. I would like to have that same link in another directory. How do I copy a symbolic link?

I tried to cp the symbolic link but this copies the file it points to instead of the symbolic link itself.

2
  • 1
    Does cp on CentOS support -P or --no-dereference switch?
    – manatwork
    Nov 19, 2012 at 9:10
  • @manatwork: Thanks it does just found that. If you want to post it as an answer I'll accept it.
    – User
    Nov 19, 2012 at 9:14

2 Answers 2

138

Use cp -P (capital P) to never traverse any symbolic link and copy the symbolic link instead.

This can be combined with other options such as -R to copy a directory hierarchy — cp -RL traverses all symbolic links to directories, cp -RP copies all symbolic links as such. cp -R might do one or the other depending on the unix variants; GNU cp (as found on CentOS) defaults to -P.

Even with -P, you can copy the target of a symbolic link to a directory on the command line by adding a / at the end: cp -RP foo/ bar copies the directory tree that foo points to.

GNU cp has a convenient -a option that combines -R, -P, -p and a little more. It makes an exact copy of the source (as far as possible), preserving the directory hierarchy, symbolic links, permissions, modification times and other metadata.

4
  • 3
    Beware that once copied/moved, a symlink might become broken (if the source is a symlink to a relative path). Dec 10, 2013 at 7:03
  • 4
    is there a way to prevent breaking the symlinks if you are moving to a higher or lower directory? Mar 20, 2014 at 7:05
  • As a note: "GNU cp" is not the same thing as gcp, which I use. gcp -P is currently broken, even in 2019. (sigh). Jun 21, 2019 at 19:46
  • 3
    On a mac cp -a works, but cp -P doesn't
    – Will
    Mar 2, 2021 at 18:09
2

Check this answer https://superuser.com/a/315757/53590 for a specifically CentOS take on the problem. The whole question might help you but the bit at the bottom is specifically CentOS.

1
  • 1
    Note that others may choose a different order than yours for listing the answers. Beside that, the order may change in time. Please post a direct link to the referred answer. (Click the “share” link below that answer and copy the direct link which appears.)
    – manatwork
    Nov 19, 2012 at 9:30

You must log in to answer this question.

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