Чи дійсно дьоготь стискає файли або просто згрупує їх разом?


37

Зазвичай я вважав, що tarце компресія, але я не впевнений, чи вона насправді стискає файли, чи це просто як ISO-файл, файл для зберігання файлів?


Також на SuperUser .
allquixotic

Відповіді:


49

Tar - це інструмент архівації (Tape ARchive), він збирає лише файли та їх метадані разом і створює один файл. Якщо ви хочете згодом стиснути цей файл, ви можете використовувати gzip / bzip2 / xz. Для зручності tar надає аргументи для автоматичного стиснення архіву. Ознайомтесь із сторінкою tar tar для отримання більш детальної інформації.


9
Невелике уточнення відповіді. Саме GNU tar надає додаткові аргументи стиснення. Наприклад, смола Solaris не надає аргументів для стиснення.
Tero Kilkanen

5
ооо, ось чому я продовжую бачитиthing.tar.7z
Mooing Duck

BSD tar також надає аргумент для стиснення, хоча він приймає zі визначає метод стиснення на основі розширення, тоді як GNU tar має окремі zZjJаргументи для різних методів стиснення.
wingedsubmariner

2
Просто прочитайте сторінку BSD tar, і виявиться, що я помилився, BSD tar використовує окремий zZjJдля стиснення так само, як і GNU tar. Однак він автоматично визначає стиснення при декомпресії, тоді як GNU tar також очікує zZjJ.
крила підводного човна

5
@wingedsubmariner: ні; сучасні версії GNU tarавтоматично розпаковуються, не вимагаючи -zZjJпараметрів.
Джонатан Леффлер

17

tarвипускає архіви; стиснення - це окремий функціонал. Однак tar поодинці можна зменшити використання місця при використанні для великої кількості невеликих файлів, менших за розмір кластера файлової системи. Якщо файлова система використовує кластери 1kb, навіть файл, що містить один байт, буде споживати 1kb (плюс inode). tarАрхів не має ці накладні витрати.

До речі, файл ISO насправді не є "файлом для зберігання файлів" - це насправді зображення цілої файлової системи (одна спочатку призначена для використання на компакт-дисках), і тому її структура значно складніша.


3
Насправді порожній файл не буде споживати 1 кб. Файл 1-1023 байт буде.
psusi

@psusi, тож для файлу байтів 1-1023 буде витрачено 1024 завжди, що призводить до втрати 1023-1 байт.
Шиплу Мокаддім

2

Оригінальна команда UNIX tar не стискала архіви. Як було сказано в коментарі, дьоготь Solaris не здавлюється. Ні HP-UX, ні AIX, FWIW. За умовами, стислі архіви закінчуються в .tar.

За допомогою GNU / Linux ви отримуєте тар GNU. (Ви можете встановити GNU tar для інших систем UNIX.) За замовчуванням він не стискається; проте, він робить стиснути отриманий архів з допомогою Gzip (також по GNU) , якщо ви ставите -z. Звичайний суфікс для gzipped файлів є .gz, тому ви часто бачите тарболи (жаргон для архіву дьогтю, як правило, маючи на увазі його стиснення), що закінчується .tar.gz. З цього закінчення випливає тар, за яким слід gzip, напр tar cf - .|gzip -9v > archive.tar.gz. Ви також знайдете архіви, що закінчуються .tgz, наприклад tar czf archive.tgz ..

Редагувати: www.linfo.org/tar.html нагадав мені, що гугл GNU підтримує набагато більшу функціональність, ніж просто стиснення за допомогою gzip, і це нагадало мені, що суфікси - це більше, ніж звичайні умовні умови. Вони мають вбудовану семантику. Він також підтримує bzip2 ( -jдля .bz2) та старий компрес ( -Zдля .Z). Потім я переглянув сторінку man і мені нагадали, що -aавтоматично відображає потрібний метод стиснення на основі суфіксу.

Ще один ніт. Як свідчить сторінка дьогтю людей Linux, GNU виробляє інформаційні сторінки, а не людина сторінки, тому , щоб дізнатися все про GNU дьогті, перспектива info tar.


Дьоготь GNU як і раніше не справляється з компресіями, він просто подає в / з gzip, bzip2, компрес та інші.
ott--

Я подивився на джерело . GNU смола справляє стиснення! Реалізація використовує переваги повторного використання коду та здорових архітектурних принципів UNIX-інтерфейсу користувача. "Просто труби" є заниженням способу стиснення, який щільно інтегрується в інструмент. Те, що трапляється з програмами для допоміжних вил - це технічність. Якщо ви хочете захистити "просто труби", то наведіть назви файлів та номерів рядків, і давайте подивимося, з якої сторони йде спільнота.
tbc0

Минуло кілька днів, перш ніж я зможу перевірити це джерело.
ott--

1

утиліта tar не стискається, поки ви не аргументуєте це [tar -z ім'я файлу].

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.