Как мне скопировать папку, сохранив владельцев и разрешения без изменений?

Поэтому я собирался сделать резервную копию своей домашней папки, скопировав ее на внешний диск следующим образом:

sudo cp -r /home/my_home /media/backup/my_home

В результате все папки на внешних дисках теперь принадлежат root:root. Как я могу иметь cp сохранить права собственности и разрешения от оригинала?

24
задан 20 July 2012 в 19:43

4 ответа

Используйте флаг -p.

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

--preserve[=ATTR_LIST]
       preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all

Обратите внимание, что для правильной репликации разрешений файловая система назначения должна быть такой же, как исходная файловая система. Другими словами, ваш внешний диск должен быть отформатирован как ext4, если, как это обычно бывает, ваша домашняя папка хранится в разделе такого типа.

0
ответ дан 20 July 2012 в 19:43

Вы можете использовать флаг -p:
cp -rp /home/my_home /media/backup/my_home
или использовать командную строку rsync:
rsync -aux /home/my_home /media/backup/my_home

0
ответ дан 20 July 2012 в 19:43

Используйте sudo cp -a /home/my_home /media/backup/my_home, он превратится в подкаталоги и сохранит все атрибуты файла.

0
ответ дан 20 July 2012 в 19:43

В более ранних ответах выше папка «my_home» помещалась в папку my_home в месте назначения. в результате получается /media/backup/my_home/my_home/child_stuff

, так что это может быть лучше:

sudo cp -a /home/my_home/. /media/backup/my_home

символ '/.' на источник копирует содержимое и включает скрытые файлы.

3
ответ дан 29 December 2020 в 08:48

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

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