2008-10-01 19 views

回答

6

按照CP手冊頁CP -a相同CP -dpR這是

-p = preserve mode,ownership,timestamps 
-R = recursive 
-d = no dereference and preserve links 

的OS X相當於將

CP -pPR

-p = preserve 
-R = recursive 
-P = no symbolic links are followed -- can be added but this is the default behavior 

唯一缺少的是-d我認爲這是默認行爲,但我不積極。

我從來沒有與同上

編輯搞砸 - @SoloBold

-L跟隨符號鏈接。 -p不符合符號鏈接。 OS X(10.4至少)沒有-d選項。

這是一個巨大的差異。

+1

cp -pPR應該至少在10.5上完成這項工作。 – 2008-10-02 01:29:41

0

由於j04t指出,應cp -pR

在OS X,你會做

cp -dRL src target 

CP保留資源OS X的新版本(是它10.3時發生了什麼? )

嘿d是有點像一個倒置的p,右)

1

從Linux的CP(1) :

-a,--archive相同-dpR

這是混亂的,因爲-d似乎是等效於-p。無論如何,OSX有-p和-R,所以你可以使用它。

+0

從OS X手冊頁:「除非設置了-R標誌,否則將始終遵循符號鏈接,在這種情況下,不會遵循符號鏈接。」這與Linux的工作方式相反。 – wprl 2008-10-01 23:54:21

2

我個人使用rsync -a(或任何rsync params被要求)。我的兩個原因是:我已經知道如何做到這一點,並且我需要我的腳本可以在Linux/BSD/Solaris上移植。還有一些文件系統,其中rsynccp更有效。

對不起,這不是一個直接的答案,我已經在BSD上使用ditto,但沒有任何問題,你不在手冊頁。

0

ditto和cp之間有一個區別,即source是一個目錄時,cp在目的地創建一個具有該名稱的目錄,但同樣只複製內容。謹防!

1

如果您使用同上,你應該知道,它從cp -a移動內容有點不同,當涉及到文件夾:

ditto foo bar 

將foo的內容移動到酒吧(導致巴/ file1的,酒吧/ file2的..)

cp -a foo bar 

將移動富/成條/(導致酒吧/富/ file1的,酒吧/富/ file2的,..)

另外:OSX CP現在支承實t cp -a