Centos – How to copy a symbolic link


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.

Best Answer

  • 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.

  • Related Question