Как я могу рекурсивно копировать файлы без перезаписи существующих разрешений?

Когда я копирую файлы из одного каталога в другой, права доступа к каталогу сбрасываются (например, с 0755 до 0775), и это вызывает проблемы, заставляя меня вернуться назад и вручную сбросить разрешения каталога. В настоящее время я делаю cp -r /source/directory /destination/directory

Я хочу скопировать все файлы и новые каталоги, но не перезаписывать разрешения существующих каталогов.

9
задан 14 August 2013 в 07:45

3 ответа

Для сохранения ссылок вы можете использовать cp ( manpage для cp ) с флагом -d, что эквивалентно --no-dereference --preserve=links.

Чтобы объединить это с флагами -p и -R, вы можете использовать флаг архива -a.

0
ответ дан 14 August 2013 в 07:45

Добавить флаг -p

cp -pR /source/dir /dest/dir

Из man cp:

-p     same as --preserve=mode,ownership,timestamps
0
ответ дан 14 August 2013 в 07:45

Мой ~/.bashrc был изменен, чтобы содержать

alias cp='cp -i --preserve=all'

Это означает, что когда я использую cp, он также запрашивает перед перезаписью (-i) и сохраняет все (т. Е. Режим, владение) временные метки и, если возможно, дополнительные атрибуты: контекст, ссылки, xattr).

Вы всегда можете изменить его на mode вместо all, если хотите, но мне нравится иметь этот псевдоним для изменения значений по умолчанию cp.

0
ответ дан 14 August 2013 в 07:45

Другие вопросы по тегам:

Похожие вопросы: