Як я можу рекурсивно копіювати файли, не перезаписуючи існуючі дозволи?


9

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

Я хочу скопіювати всі файли та нові каталоги, але не перезаписувати дозволи на існуючі каталоги.

Відповіді:


5

Для збереження посилань ви можете використовувати cp( manpage для cp ) з -dпрапором, що еквівалентно --no-dereference --preserve=links.

Щоб поєднати це з прапорами -pта -Rпрапорами, ви можете використовувати прапор архіву -a.


7

Додати прапор -p

cp -pR /source/dir /dest/dir

Від man cp:

-p     same as --preserve=mode,ownership,timestamps

2

Моє ~/.bashrcзмінено, щоб містити

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

Це означає, що коли я використовую cp, він також підкаже перед перезаписом ( -i) і збереже всі (тобто режим, право власності, часові позначки; і, якщо можливо, додаткові атрибути: контекст, посилання, xattr).

Ви завжди можете змінити його на лише modeзамість, allякщо вам подобається, але мені подобається мати цей псевдонім для зміни за замовчуванням cp.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.