复制带有符号链接的文件夹

复制带有符号链接的文件夹

如何复制包含符号链接的文件夹并将符号链接保留在目标文件夹中?我正在用 PHP/Bash 做这样的事情:

system("cp -r production-clone-target production-sites/{$instanceName}");

但符号链接不会出现在目标文件夹中。

答案1

尝试将--preserve=links开关添加到您的cp命令中。

man cp

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

编辑:如果在 OS X 下;使用cp -a

答案2

您还可以使用 rsync:

-l, --links                 copy symlinks as symlinks

我喜欢-a复制子目录等,其中也包括这个。

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

因此,在您的代码示例中,您可以这样做:

system("rsync -a production-clone-target production-sites/{$instanceName}");

答案3

system()抛开有关在 PHP 程序中使用的合理担忧:

cp可能没有 Linux 和 BSD 通用的标准化选项来执行此操作,但pax确实有。

( cd 源 && pax -pp -r -w * 目标/ )

相关内容