Когда я копирую файлы из одного каталога в другой, права доступа к каталогу сбрасываются (например, с 0755 до 0775), и это вызывает проблемы, заставляя меня вернуться назад и вручную сбросить разрешения каталога. В настоящее время я делаю cp -r /source/directory /destination/directory
Я хочу скопировать все файлы и новые каталоги, но не перезаписывать разрешения существующих каталогов.
Для сохранения ссылок вы можете использовать cp
( manpage для cp ) с флагом -d
, что эквивалентно --no-dereference --preserve=links
.
Чтобы объединить это с флагами -p
и -R
, вы можете использовать флаг архива -a
.
Добавить флаг -p
cp -pR /source/dir /dest/dir
Из man cp
:
-p same as --preserve=mode,ownership,timestamps
Мой ~/.bashrc
был изменен, чтобы содержать
alias cp='cp -i --preserve=all'
Это означает, что когда я использую cp
, он также запрашивает перед перезаписью (-i
) и сохраняет все (т. Е. Режим, владение) временные метки и, если возможно, дополнительные атрибуты: контекст, ссылки, xattr).
Вы всегда можете изменить его на mode
вместо all
, если хотите, но мне нравится иметь этот псевдоним для изменения значений по умолчанию cp
.