Поэтому я собирался сделать резервную копию своей домашней папки, скопировав ее на внешний диск следующим образом:
sudo cp -r /home/my_home /media/backup/my_home
В результате все папки на внешних дисках теперь принадлежат root:root
. Как я могу иметь cp
сохранить права собственности и разрешения от оригинала?
Используйте флаг -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
, если, как это обычно бывает, ваша домашняя папка хранится в разделе такого типа.
Вы можете использовать флаг -p:
cp -rp /home/my_home /media/backup/my_home
или использовать командную строку rsync:
rsync -aux /home/my_home /media/backup/my_home
Используйте sudo cp -a /home/my_home /media/backup/my_home
, он превратится в подкаталоги и сохранит все атрибуты файла.
В более ранних ответах выше папка «my_home» помещалась в папку my_home в месте назначения. в результате получается /media/backup/my_home/my_home/child_stuff
, так что это может быть лучше:
sudo cp -a /home/my_home/. /media/backup/my_home
символ '/.' на источник копирует содержимое и включает скрытые файлы.