複製帶有符號連結的資料夾

複製帶有符號連結的資料夾

如何複製包含符號連結的資料夾並將符號連結保留在目標資料夾中?我正在用 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 * 目標/ )

相關內容