Как я копирую папку, сохраняющую владельцев и неповрежденные полномочия?

И FreeBSD и OpenBSD поставлются с BIND как предварительно установленный сервер имен. В руководстве FreeBSD существует хорошее введение. Для OpenBSD существует большая информация о Панике Ядра.

FreeBSD не включает сервер DHCP в свою стандартную установку, но официально рекомендует сервер DHCP ISC; см. руководство. OpenBSD действительно включает сервер DHCP, в FAQ существует учебное руководство.

Для домашнего использования существуют альтернативы, такие как dnsmasq, которые легче настроить, но иметь меньше возможностей. Dnsmasq подходит для встроенных систем (много домашних маршрутизаторов с открытым исходным кодом выполняют его), и включает обоих простой сервер имен (главным образом для кэширования) и простой сервер DHCP. Это доступно как порт на FreeBSD и OpenBSD.

394
16.07.2014, 23:58
9 ответов
sudo cp -rp /home/my_home /media/backup/my_home

Из страницы справочника CP:

 -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
475
27.01.2020, 19:28
  • 1
    Намного лучше использовать cp -a. Это также включает -rфлаг ecursive, но это делает больше, чем тот — это сохраняет все о файле; атрибуты SELinux, ссылки, xattr, все. Это - "режим архивирования". Существуют лучшие инструменты для того, чтобы сделать резервное копирование, но если Вы используете cp для резервного копирования ничего не используйте кроме cp -a. –  Wildcard 14.10.2015, 06:54
  • 2
    Это работает, но Patience Хороша здесь. Команда только установит все правильное, когда это закончится: В то время как это все еще копирует каталог, и Вы выполняете CP как корень, каталог будет принадлежать корню. Это только установит его на правильные полномочия, когда это закончится с этим каталогом. –  Paul 18.11.2015, 19:01
  • 3
    cp -a не работает над некоторыми системами: например, OS X, где (в некоторых версиях, по крайней мере) один должен был использовать cp -pR. На моей существующей системе OS X, хотя (10.10.15), cp -a кажется, почетен. –  dubiousjim 30.09.2017, 19:30

Я использую cp -pdRx который будет -p сохраните режим, владение и метки времени, -d сохраните ссылки (таким образом, Вы получаете символьные ссылки вместо этого скопированное содержание файла), -R сделайте это рекурсивно и -x останьтесь в одной файловой системе (только действительно полезный, если Вы копируете / или что-то с активной точкой монтирования).

PS: -R вместо -r просто привычка от использования ls -lR.

21
27.01.2020, 19:28
  • 1
    cp -ax немного более короткая версия того же самого. Это работало отлично - спасибо! –  EM0 25.03.2015, 14:27
  • 2
    На самом деле существует различие между -r и -R. Проверьте страницу справочника (даже конкретная часть слишком долго, чтобы быть заключенными в кавычки здесь). –  geckon 08.07.2015, 16:23
  • 3
    я не думаю, существует (хотя, возможно, однажды было и может все еще быть на некоторых версиях Unix). См. man7.org/linux/man-pages/man1/cp.1.html, который Это просто говорит -R, -r, --recursive copy directories recursively. –  StarNamer 08.07.2015, 19:09

Можно также использовать rsync.

sudo rsync -a /home/my_home/ /media/backup/my_home/

От rsync страница справочника:

 -a, --archive
              This  is  equivalent  to  -rlptgoD.  It  is a quick way of saying you want
              recursion and want to preserve almost everything (with -H being a  notable
              omission).    The   only  exception  to  the  above  equivalence  is  when
              --files-from is specified, in which case -r is not implied.

              Note that -a does not preserve hardlinks, because finding  multiply-linked
              files is expensive.  You must separately specify -H.

Посмотрите этот вопрос для сравнения между cp и rsync: https://stackoverflow.com/q/6339287/406686

Отметьте запаздывающие наклонные черты (см. страницу справочника для деталей).

96
27.01.2020, 19:28
  • 1
    +1, cp -p хорошо, но мне нравится rsyncпроизведите настолько больше в целом, что я исказил pcp кому: time rsync --progress -ah. Обозначает "копию прогресса" в моем уме. И оба принимают -r, таким образом, это работает хорошо на общее терминальное использование - но к сожалению, не в сочетании с sudo как показано в этом вопросе/ответе. –  Izkata 20.07.2012, 20:59
  • 2
    rsync -a, не сохраняет расширенные атрибуты (-X) и никакой ACLs (-A) - в кратком описании говорится archive mode; equals -rlptgoD (no -H,-A,-X). Например, контексты SELinux не будут preserverd без -X. Для многих вариантов использования это прекрасно, но если Вы делаете резервное копирование своего системного раздела, отсутствование-X могло бы повредиться довольно много.Насколько мне известно, cp -a действительно сохраняет все атрибуты файла. –  Perseids 23.09.2014, 09:44
  • 3
    Просто протестированный это, в то время как sudo cp -a сохраняет владение и группы, sudo rsync -a изменяет их в корень. Так, @Perseids корректен. –  John Hamilton 16.03.2018, 13:59

Можно сделать что-то вроде этого:

tar cf - my_home | (cd /media/backup; sudo tar xf - )

tar сохраняет полномочия, владение и структуру каталогов неповрежденными, но преобразовывает все в поток байтов. Вы выполняете "подоболочку" (заключенные в скобки команды) что каталог изменения и затем добираетесь tar инвертировать преобразование. Пар байтов становится каталогами и файлами с корректным владением и полномочиями.

11
27.01.2020, 19:28

cp имеет опцию сохранить принадлежность файла. Из страницы руководства cp:

-p    Cause cp to preserve the following attributes of each source file in the copy: modification
      time, access time, file flags, file mode, user ID, and group ID, as allowed by permissions.
      Access Control Lists (ACLs) and Extended Attributes (EAs), including resource forks, will also
      be preserved.
14
27.01.2020, 19:28

Ответ прост: cp имеет a -p опция, которая сохраняет полномочия (вот рыба).

Но поскольку Wojtek заявляет в его комментарии, man cp (чтение прекрасного руководства), была бы хорошая начальная точка (хотите изучить, как ловить рыбу?).

7
27.01.2020, 19:28
cp -a

Где -a - это сокращение от --archive - в основном это копирование каталога точно в том виде, в котором он есть; файлы сохраняют все свои атрибуты, а симлинки не разыменовываются (-d).

Из man cp:

   -a, --archive
          same as -dR --preserve=all
66
27.01.2020, 19:28

вы можете использовать save=all, тогда ваша копия сохранит все атрибуты, такие как владелец, группа и временная метка ваших файлов. Итак, сделайте резервную копию безопасно с помощью следующей команды.

cp -r --preserve=all /home/my_home /media/backup/my_home
4
27.01.2020, 19:28

ну, я использовал Linux Zorin, и моя проблема заключалась в попытке скопировать мою домашнюю папку на внешний диск, в то время как мой компьютер загружался с iso (загрузочного USB-накопителя ), так как я испортил свой sdd, и теперь это не так. загрузитесь правильно, поэтому я делаю новую установку, на этот раз я надеюсь установить Windows 7, а затем успешно установить Zorin OZ или просто Zorin OS, я не уверен, следует ли мне выполнять двойную загрузку или использовать Linux с виртуальной машиной.

что я сделал:

установить caja (через командную строку или магазин ПО)

запустите caja как root (я использовал командную строку и запустил ее как ROOT)

скопируйте и вставьте мои файлы, которые я хотел, пропустил то, что не хотел копировать, и, надеюсь, те, которые мне не нужны)

ГОТОВО.

Для меня 20 ГБ моей домашней папки занимают целую вечность, а те несколько минут, которые прошли, сейчас кажутся вечностью.

Надеюсь, это кому-нибудь поможет, несмотря на всю мою бессвязность.

-2
02.10.2020, 21:03

Теги

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