如何复制符号链接?


41

我有一个指向一个目录中文件的符号链接。我想在另一个目录中使用相同的链接。如何复制符号链接?

我试图cp符号链接,但这会复制它指向的文件,而不是符号链接本身。


1
cp在CentOS上是否支持-P--no-dereference切换?
manatwork 2012年

@manatwork:谢谢,它确实发现了这一点。如果您想将其发布为答案,我会接受。
用户

Answers:


54

使用cp -P(大写字母P)永不遍历任何符号链接,而是复制该符号链接。

可以将其与其他选项结合使用,例如-R复制目录层次结构-将cp -RL所有符号链接遍历到目录,cp -RP照此复制所有符号链接。cp -R可能会做一个或另一个,具体取决于unix变体;GNU cp(在CentOS上可以找到)默认为-P

即使使用-P,也可以通过/在末尾添加a将符号链接的目标复制到命令行上cp -RP foo/ bar的目录:复制foo指向的目录树。

GNU cp有一个方便-a的选择,结合-R-P-p多一点。它会(尽可能)精确地复制源,并保留目录层次结构,符号链接,权限,修改时间和其他元数据。


3
注意,一旦复制/移动,符号链接可能会损坏(如果源是指向相对路径的符号链接)。
斯特凡Chazelas

3
如果要移到较高或较低的目录,有什么方法可以防止破坏符号链接?
安德鲁·布朗

注意:“ GNU cp”与所用的东西不同gcpgcp -P即使在2019年也已中断。(叹气)。
tgm1024

1

检查此答案https://superuser.com/a/315757/53590以获取专门针对CentOS的问题。整个问题可能会对您有所帮助,但最底层的是CentOS。


1
请注意,其他人可能会选择与您列出答案不同的顺序。除此之外,顺序可能会及时更改。请发布直接链接到所引用的答案。(单击该答案下方的“共享”链接,然后复制显示的直接链接。)
manatwork 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.