不使用符号链接的 Unix 复制(cp)

不使用符号链接的 Unix 复制(cp)

我想复制我的文件,但将符号链接转换为硬链接(即实际文件)。我该怎么做?

这是我的代码(不起作用):

cp -RL ${FROM_DIR} ${TO_DIR}

注意:这是为了 Xcode 的目的 - 构建中不允许使用符号链接。

谢谢!

编辑:

问题是我首先删除文件的方式 - 它并没有删除现有的符号链接。

rm -RLf "${FROM_DIR}/*"

答案1

不确定 UNIX 的cp实现,但cp默认情况下 GNU 不保留符号链接。而且硬链接与文件不同。默认情况下,cp 从符号链接创建文件/目录。可能您不需要 -L 选项来实现您的目的。如果您确实需要这个,您可以使用 --no-preserve=links 选项。

参考man cp

   --preserve[=ATTR_LIST]
          preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all

   --no-preserve=ATTR_LIST
          don't preserve the specified attributes

相关内容