Как использовать Ditto в OS X, чтобы работать как cp -a в Linux - PullRequest
5 голосов
/ 02 октября 2008

Я парень из Linux, и я привык копировать деревья каталогов с помощью cp -a. OS X не имеет опции -a на cp ..., но имеет команду ditto. Я сейчас читаю этого человека на ditto, но есть ли что-то, что я должен специально искать?

Ответы [ 6 ]

7 голосов
/ 02 октября 2008

Согласно справочной странице 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 .

это огромная разница.

3 голосов
/ 02 октября 2008

Лично я использую rsync -a (или как требуется rsync params). У меня есть две причины: я уже знаю, как это сделать, и мне нужно, чтобы мои сценарии были переносимы между Linux / BSD / Solaris. Есть также некоторые файловые системы, где rsync более эффективен, чем cp.

Извините, это не прямой ответ, я использовал ditto на BSD, но у меня нет ошибок для вас, которых нет на странице руководства.

1 голос
/ 22 августа 2013

Если вы используете то же самое, вы должны знать, что оно перемещает содержимое немного по-другому, чем cp -a, когда дело касается папок:

ditto foo bar

переместит содержимое foo в bar (в результате чего bar / file1, bar / file2 ..)

cp -a foo bar

переместит foo / в bar / (в результате чего bar / foo / file1, bar / foo / file2, ..)

Также: теперь OSX cp поддерживает cp -a.

1 голос
/ 02 октября 2008

Из Linux cp (1):

-a, --архив, такой же как -dpR

, что сбивает с толку, так как -d похоже на -p. В любом случае, OSX имеет -p и -R, так что вы можете просто использовать это.

0 голосов
/ 04 октября 2009

существует разница между ditto и cp, которая заключается в том, что когда source является каталогом, cp создает каталог с таким именем в месте назначения, но ditto просто копирует содержимое. Осторожно!

0 голосов
/ 02 октября 2008

Как указал j04t, должно быть cp -pR

На OS X вы бы сделали

cp -dRL src target

cp сохраняет ресурсы в более новой версии OS X (было ли это 10.3, когда это произошло?)

Эй, d вроде как перевернутый p, верно;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...