В моей компании мы загружаем снимок локальной базы данных разработки в виде db.dump.tar.gz
файла. Сжатие имеет смысл, но тарбол содержит только один файл ( db.dump
).
Есть ли смысл архивировать отдельный файл или это .tar.gz
просто такая распространенная идиома? Почему не просто .gz
?
tar
compression
archive
gardenhead
источник
источник
tar -zxvf
. Но для тех, кто смотрит на имя файла и видит, что оно не имеет.tgz
расширения, вполне можно распаковать файл db dump. Поскольку я не знаю подробности алгоритмов сжатия, я не уверен, что tar выполняет какое-либо сжатие для разреженных файлов, таких как db dump, но для простых текстовых файлов прямой gzip файла имеет очень небольшое преимущество в размере по сравнению с tary first и gzip. составление файла.tar.gz
что он превосходит большинство других распространенных методов. Я помню, что.tar
это было лучше, чем просто, но не могу вспомнить, было ли это лучше, чем просто.gz
. По иронии судьбы.cab
формат Window был лучшим из тех, что я пробовал, что было очень неожиданно.tar
- это не алгоритм сжатия, это формат архивированияОтветы:
Преимущества использования
.tar.gz
вместо того.gz
, чтоtar
хранит больше метаданных (разрешения UNIX и т. д.), чемgzip
.Накладные расходы на использование
tar
также очень малы.Если в этом нет особой необходимости, я все равно не рекомендую tar-файл для одного файла Существует множество полезных инструментов, которые могут напрямую обращаться к сжатым отдельным файлам (например
zcat
,zgrep
и т. Д. , Которые также существуют дляbzip2
иxz
).источник
.gz
, мой первый инстинкт этоtar -zxf foo.gz
. Запоминание того, что gzip - это даже команда, занимает еще несколько секунд.z
(или, если-
на то пошло), большинство современныхtar
s автоматически обнаружат, что файл должен быть распакован.gzip
будут сохранены исходное имя файла и отметка времени. Вы можете использовать-N
опцию при распаковке, чтобы восстановить их.Вы на самом деле задаете только половину вопроса. Другой вопрос: «Зачем мне сжимать файл tar с помощью gzip?». И ответ не только в том,
gzip
что файл становится меньше (в большинстве случаев):tar
:gzip
:Только
tar
вы не можете быть уверены, что ваши данные не были повреждены. С помощью толькоgzip
вы не можете восстановить идентификатор пользователя / группы, время изменения и, возможно, не оригинальное имя файла.Комбинация является более мощной, чем отдельные команды / форматы, потому что они дополняют функции друг друга .
источник
tar
страницу википедии, я неправильно понял описание, чтобы обозначить, что контрольная сумма была для всего файла.Существует довольно большое преимущество в использовании только- сжат GZIP текстовые файлы - содержимое могут быть доступны непосредственно с помощью инструментов командной строки , как
less
,zgrep
,zcat
.источник
Я бы сказал, что люди просто не понимают, что могут использовать gzip / bzip2 / xz без tar. Возможно, потому что они происходят из фона DOS / Windows, где обычно сжатие и архивирование объединяются в одном формате ( ZIP , RAR и т. Д.).
Хотя в некоторых ситуациях использование tar может иметь небольшие преимущества из-за хранения метаданных или возможности добавления дополнительных файлов, есть и недостатки. С помощью простого файла gzip / bzip2 / xz вы можете распаковать его и передать распакованные данные прямо в другой инструмент (например, в вашу базу данных) без необходимости сохранять распакованные данные в виде файла на диске. С тарболлом это сложнее.
источник
tgz
расширение. Тем не менее, случай OP используетtar.gz
- и если эти гипотетические бывшие пользователи Win / DOS похожи на меня, первое, что они говорят, глядя на такой файл: «Почему у него 2 расширения?». Затем они гуглят и быстро получают ответ, который конкретно объясняет, чтоtar
и сжатие различны. ;-)Существует важное отличие, которое может иметь
tar
значение при некоторых обстоятельствах: помимо «метаданных», о которых @jofel упомянул в своем ответе,tar
записывает имя файла в архиве. Когда вы извлекаете его, вы получаете оригинальное имя файла независимо от того, как называется архив.В вашем случае архив tar и содержащийся в нем файл имеют связанные имена
db.dump.tar.gz
иdb.tar
, но предположим, что вы переименовываете файл tar в20-Apr-16.dump.tgz
или как угодно. Распакуйте этоtar xvfz
, и вы получитеdb.dump
. Для сравнения разархивируй20-Apr-16.dump.gz
и получишь20-Apr-16.dump
. (Редактировать: как указано в комментариях, gzip также делает запись имени файла; но обычно он не используется при распаковке).tar
Архив может также содержать относительный путь к файлу , который помещает извлеченный файл в подкаталоге.Ваш случай использование будет диктовать, нужен ли этот вид имени файла упорство, или даже хотел , или на самом деле нежелательно. Но, безусловно, независимо от сжатия
tar
архив перемещается иначе, чем обычный файл.источник
gzip --name
явно использовать его при распаковке), но Вам не нужно использовать tar, чтобы получить постоянство имени файла.В дополнение ко всем остальным ответам я недавно столкнулся с ситуацией сценариев, когда ожидался только один файл, но предыдущий сотрудник написал сценарии с возможностью создания более одного файла. Таким образом, файлы были заархивированы и скопированы, затем переданы и расширены.
Когда процесс вырос до такой степени, что создал файл размером 4,3 ГБ, он перевернулся и создал файл .dump.001 в дополнение к файлу .dump. Все сценарии просто продолжали работать.
То есть проактивная лень сисадмина определяется!
источник
Я хотел бы скопировать один файл, чтобы скопировать его, сохранив отметку времени (что легко пропустить при загрузке). Права доступа к файлам и владение ими менее важны: загрузка - это термин, который применяется к системам, которые плохо интегрированы.
Независимо от того, были ли tar'ы или нет, стандартная практика заключается в сжатии файла, чтобы ускорить загрузку и избежать исчерпания дискового пространства.
источник
Tar особенно полезен для нескольких файлов, не записанных в формальную файловую систему, так было всегда. Если по какой-либо причине есть только один файл, который будет записан, это не имеет никакого реального значения. Я могу добавить мой .tar.gz напрямую в / dev / sdx, независимо от раздела или файловой системы. Это может быть и лента.
Обычно это делается потому, что сценарий или процесс был скопирован из кода наследия. Конечно, нет необходимости в tar, если есть только один файл, но он оставляет место для улучшения нескольких файлов ......
источник