Что такое различие между “tar-cSF - | tar xvf -” и “CP-R”

Например,

tar -cSf - -C /mnt/abc . | tar xvf - -C /mnt/def

не это то же как:

cp -RT /mnt/abc /mnt/def

?

1
задан 18.10.2010, 19:30

5 ответов

Они - главным образом то же, в котором они оба сделают копию дерева каталогов. Они отличаются по своей обработке метаданных.

tar cf - … | tar xf - … маршалы все данные через формат tar. Это означает любые метаданные, которые не могут быть представлены в формате tar, потерян. Существует несколько вариантов формата tar, так точно, что потеряно, будет зависеть от реализации tar. Вот несколько ограничений текущего tar GNU (некоторые из них могут быть преодолены путем переключения на другой формат tar):

  • Может быть предел на такие вещи как длина имени файла (255 байтов в порядке, я не знаю точного предела), пользователь и идентификаторы группы (до 65 535 в порядке), размеры файла (до 8 ГБ в порядке), и т.д.
  • Например, файлы, путь которых является больше чем 100 символами долго и по крайней мере с двумя жесткими ссылками в скопированном дереве, не будут скопированы правильно (я забываю точно, что поведение).
  • Списки управления доступом не будут копироваться.
  • Метки времени только будут точны к ближайшей секунде.

cp -RT не сохраняет много метаданных. В частности, это не сохранит времена файла и владение. С другой стороны, с CP GNU, cp -a сохранит в значительной степени все метаданные (я не смог дать сбой они, кроме, возможно, на временах доступа каталога в угловых случаях и подвторых метках времени в некоторых операционных системах).

3
ответ дан 12.12.2019, 08:15

cp скопирует символ символом. Используя поддержку каналов ядра, мы могли скопировать блок файлов блоком. Причина я использовал tar в прошлом, была для сетевых передач как следующее:

tar czv ListOfFiles | ssh remote.box.com tar xz -C /home/user/PathToCopy

Дополнительную информацию см. в этой ссылке.

2
ответ дан 12.12.2019, 08:15

с копией tar Вы можете:

  • поместите другие программы между каналами (например, объем плазмы для измерения скорости копии)
  • или netcat для передачи его другой машине
  • можно использовать - включают, и - исключают, чтобы не копировать некоторые файлы или включать только определенные файлы
1
ответ дан 12.12.2019, 08:15

tar обработает больше вещей соответственно, таких как редкие файлы, полномочия и ссылки.

0
ответ дан 12.12.2019, 08:15

Вы cp команда не сохранит метки времени, необходимо добавить -p переключатель. -d будет также необходим для сохранения символьных ссылок.

0
ответ дан 12.12.2019, 08:15

Теги

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