如何用链接到的文件副本替换符号链接?


15

有一个(单个,不需要批处理文件系统处理)符号链接,用什么命令行将其替换为链接到的文件的副本?

Answers:


16
cp --remove-destination "$(readlink <symlink>)" <symlink>

1
从Debian环境执行时,出现错误“ -bash:意外令牌'newline'附近的语法错误”。
林松杨

如果<symlink>是相对路径的符号链接,则仅当<symlink>当前目录中的符号链接有效。您可能要使用readlink -f。或者,如果使用zshcp --remove-destination path/to/symlink(:A) path/to/symlink
斯特凡Chazelas

0

您可以这样做:

file=path/to/symlink
{ rm -f -- "$file" && cat > "$file"; } < "$file"

(仅复制内容,而不复制文件的元数据,如权限和所有权)。

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.