Я всегда использовал GNU tar
. Однако все дистрибутивы GNU / Linux, которые я видел, поставляются bsdtar
в их репозиториях. Я даже видел, как он установлен по умолчанию в некоторых, IIRC. Я точно знаю, что Arch GNU / Linux требует этого как часть basedevel
(может быть base
, но я не уверен), как я видел это в PKGBUILD.
Почему вы хотите использовать bsdtar
вместо GNU tar
? Каковы преимущества?
Обратите внимание, что я тот человек, который спросил, каковы основные различия между пользовательским интерфейсом BSD и GNU / Linux? ,
Ответы:
Ubuntu
bsdtar
на самом деле является реализацией tar, связанной сlibarchive
; и это следует отличать от классическогоbsdtar
. Некоторые варианты BSD используютlibarchive
для своей реализации tar, например, FreeBSD.GNUtar
поддерживает другие варианты tar и автоматическое определение сжатия.Когда визуализация вставила рекламный ролик из Ubuntu, есть несколько вещей, которые относятся к
libarchive
:libarchive
по определению является библиотекой, и отличается от классическойbsdtar
иGNUtar
в этом смысле.libarchive
не может прочитать некоторые старые непонятные изменения tar GNU, наиболее заметной была кодировка некоторых заголовков в base64, так что файл tar был бы 7-битным чистым ASCII (это было в случае 1.13.6-1.13.11 и изменено в 1.13.12 этот код был только официально в tar в течение 2 недель)libarchive
sbsdtar
будет читать файлы, не относящиеся к tar (например, zip, iso9660, cpio), а классический bsdtar - нет.Теперь, когда мы
libarchive
ушли с дороги, все сводится к тому, что поддерживается в классическойbsdtar
.Вы можете увидеть сами страницы здесь:
В своем первоначальном вопросе вы спросили, какие преимущества у классики
bsdtar
, и я не уверен, что они действительно есть. Единственное время, когда это действительно важно, - это если вы пытаетесь писать сценарии оболочки, которые должны работать на всех системах; Вы должны убедиться, что то, что вы передаете,tar
действительно во всех вариантах.GNUtar
,libarchive
«Sbsdtar
, классическиеbsdtar
,star
иBusyBox
» star
, конечно , в реализации деготь , что вы будете работать в большую часть времени, но я уверен , есть и другие , там ( в начале QNX, например).libarchive
/GNUtar
/star
являются наиболее функциональными, но во многих отношениях они давно отклоняются от первоначальных стандартов (возможно, в лучшую сторону).источник
BSDTAR против TAR и многое другое
Вот одно преимущество !!
Я собираюсь перейти к 5 темам здесь (и далеко от темы, но она также охватит то, что вы хотите):
bsdtar лучше обрабатывает разреженные файлы, чем обычный tar
* пример: представьте разреженный файл размером 20 ТБ (называемый biglun) с 10 мегабайтами данных в разреженном файле размером 20 ТБ (biglun) ... теперь, поскольку этот файл является разреженным, он займет всего 10 мегабайт на диске.
Как сделать разреженный файл:
Разреженный файл - как это сделать - обнаружить его - все Разреженные файлы похожи на "тонкие" лунные (если вы использовали его для лунных). "толстые" лун были бы другой историей.
* вернуться к теме:
если вспомнить, что biglun заставит tar пройти все 10 мегабайтов вместе со всеми худшими нулями, разбросанными по ~ 20 ТБ, по луне ... я предполагаю, что это займет некоторое время, и файл tar будет довольно большим. Кроме того - извлекая его - я никогда не делал извлечения файла tar из разреженного файла, но это может быть не красиво; Я могу ошибаться здесь.
bsdtarring biglun просто обработает 10 мегабайт данных и создаст небольшие метаданные для ~ 20 ТБ нулей.
Выгода? Ну, их много; Я просто написал несколько выше.
Это похоже на rsync vs cp
Лично мне нравится представлять редкие файлы, такие как тонкие луны, и обычные файлы, такие как толстые луны ...
Следующая тема BTRFS тонкая против толстой LUNs:
В таких файловых системах , как BTRFS , тонкие лунки - это редкие файлы (делайте это с помощью усечения, как в вики-документе).
совет: резервное копирование с помощью bsdtar , копирование с помощью cp
толстые лунные файлы - это обычные файлы с атрибутом + C (+ C, что делает его не COW, копировать при записи, так что все записи, по существу, остаются там, где они выделены, и новые записи для этого файла не происходят при перезаписи или удаляет - исследуй COW и BTRFS ). Вместо того, чтобы создавать файл с усечением, сделайте это с помощью "fallocate -l"
совет: сделайте резервную копию с помощью bsdtar или tar, скопируйте с помощью rsync или cp
Следующая тема - EXT тонкий против толстых луны:
тонкие луны, которые редки
совет: резервное копирование с помощью bsdtar , копирование с помощью cp
толстые лунные файлы - это обычные файлы с атрибутом + C (+ C, что делает его не COW, копировать при записи, так что все записи, по существу, остаются там, где они выделены, и новых записей для этого файла не происходит при перезаписи или удаляет - исследуй COW и BTRFS ). Вместо того, чтобы создавать файл с усечением, сделайте это с помощью "fallocate -l"
совет: сделайте резервную копию с помощью bsdtar или tar, скопируйте с помощью rsync или cp
что толстый против тонкого файла
СТАТЬЯ VMWARE ЗДЕСЬ описывает ленивый против нетерпеливого нуля с толстыми лунами / файлами: https://communities.vmware.com/message/2199576
чаевые
помните, что толстые и тонкие не только применимы к лунам, они также могут относиться к файлам, файловым системам zfs (share / volume / luns) и, я уверен, к другим вещам (просто посмотрите на zfs).
источник
Из описания пакета Ubuntu ( http://packages.ubuntu.com/de/lucid/bsdtar )
«Программа bsdtar имеет ряд преимуществ перед предыдущими реализациями tar:
источник
Нижеследующее основано на чтении, а не на опыте - я только начинаю с Freebsd, поэтому у меня почти нет реального опыта (я в основном из Linux). Я прошу прощения (и смиренно требую исправления), если я пропустил что-то важное, и что я говорю здесь, это мусор ...
Из моего прочтения страниц справочника (последняя ссылка была выше http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=1 ), в смоле Freebsd отсутствует (-d, --diff). возможность. Это неудивительно, так как авторы FreeBSD dump / restore также не предоставили ничего подобного.
Я не знаю наверняка, будет ли tar Gnu включать все метаданные UFS, как об этом говорит tar Freebsd, и это важная проблема. Но на мой вкус, я НИКОГДА не могу считать, что дамп будет завершен, пока я не сохраню сумму MD5 выходного файла, И ТОГДА сравнил файл дампов с данными, которые я только что предположительно сбросил. Различные проблемы могут привести к тому, что сбрасываемые данные будут отличаться от данных на диске. (Не только изменения файла, но и ошибки диска, ошибки памяти, ошибки компьютера и т. Д. Все это на самом деле произошло со мной.)
По моему мнению, это делает Gnu tar единственным вариантом, который я нашел для создания настоящих резервных копий в стандартной системе Freebsd.
Мне бы очень хотелось узнать иначе, FWIW. Я бы предпочел использовать нативные утилиты по крайней мере для клонирования разделов и резервного копирования с жестким восстановлением. Но если кто-то не может проверить правильность дампа, я не вижу смысла его создавать.
источник
bsdtar может читать и tar-члены из других архивов, используя
@archive
синтаксисУ GNU tar есть
--delete
опция - хотя недавно я обнаружил, что она может испортить архив.источник