LINUX.ORG.RU

а расскажите мне про форматы архивов

 


0

6

Появилось ли что-то более новое модное и хорошее, чем формат 7zip, единственным недостатком которого является отсутствие сохранения linux-овых атрибутов и расширенных атрибутов? Давно не следил за этим - года так с 2009, а сегодня увидел появление zstd которому уже 9 лет, но он такой же специфический как и xz, т.е. годится только в связке с tar, что не даёт извлекать произвольные файлы без распаковки всего архива. Понятно что где-то там продолжают развиваться архиваторы семейства PAQ, но на практике их применять невозможно из-за очень медленной скорости упаковки/распаковки.

★★★★★

Ответ на: комментарий от x905

читай первое сообщение - работать «как с архивом»

То есть не знаешь.

почему ?

Не очень положительно характеризует умственные способности пишущего.

anonymous
()
Ответ на: комментарий от x905

читай первое сообщение - работать «как с архивом»

Прочитай сам - там нет требования изменения файла в архиве! Автор хочет только извлечь один файл, не разжимая всего архива.

Изменение файлов в архиве - очень странная функция. Никогда такой не пользовался! Всегда или полная копия файлов или инкрементная. И всегда архив имеет смысл только как копия всех файлов на определенную дату.
Зачем подменять файлы в архиве - загадка для меня.

sigurd ★★★★★
()
Ответ на: комментарий от sigurd

Автор хочет только извлечь один файл, не разжимая всего архива.

потом захочет )

И всегда архив имеет смысл только как копия всех файлов на определенную дату.

это твое мнение, придерживайся его, я не против

но архив можно изменить, а зачем это нужно - решает сам пользователь, например обновить архив новыми файлами для актуализации

x905 ★★★★★
()
Ответ на: комментарий от CrX

Больше терабайта книжек

Слабо верится. Я при всей своей одержимости книжками накопил за все годы 100Гб. Это 53 тысячи книг. Ты весь интернет скачал что ли?

жмутся игры

Зачем их жать?

Экономия в 900 ГБ — это не кот наплакал

Это 5т.р. Один раз в магазин сходить.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от x905

Она не была чётко обозначена (ну или я просто недостаточно внимательно читал). Я чётко указал, для каких юзкейсов подходит этот вариант. Возможно, у ТС есть и такие юзкейсы тоже.

CrX ★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Слабо верится. Я при всей своей одержимости книжками накопил за все годы 100Гб. Это 53 тысячи книг. Ты весь интернет скачал что ли?

Ну и у меня около 100 ГБ. Сжатых. Нет, не весь интернет, конечно, только вся флибуста на русском с последующим удалением кое-чего, что точно не нужно (где-то 85% объёма) + на английском из разных мест.

Зачем их жать?

  1. Экономия места.
  2. Экономия времени (грузятся быстрее так)

Это 5т.р. Один раз в магазин сходить.

Во-первых, это каждый раз всего 5 т.р. только если есть бесконечное количество SATA-слотов, в ином случае затраты больше.

Во вторых, оно жмётся за 1 ночь, когда юзер при этом спит. Экономия 5 килорублей окупает этот «великий труд» полностью. Я понимаю, что 5к рублей — это не какие-то огромные деньги, но если для Вас это зарплата за 8–10 часов (причём ничегонеделания — работает компьютер, а не юзер), то могу только позавидовать. Для большинства это не так.

CrX ★★★
()
Ответ на: комментарий от x905

а тут можно это спросить или мне «свой» топик заводить ?

Конечно можно, но от своего имени, а не посылать читать первое сообщение автора, где нет таких вопросов и хотелок.

sigurd ★★★★★
()
Ответ на: комментарий от CrX

это каждый раз всего 5 т.р.

Не каждый, а один раз. Или ты каждый день по терабайту книг выкачиаешь?

Нет, не весь интернет, конечно

Конкретно сколько файлов? 500k? Интересно, ты хоть названия-то прочитал у такого количества?

no-such-file ★★★★★
()

Вы там это x905не обижайте. У него похоже либастрал нужной версии. Все комментарии о том что он хочет от формата архива или считает что я этого хочу совпали с моими хотелками.

peregrine ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

Не каждый, а один раз. Или ты каждый день по терабайту книг выкачиаешь?

Нет, конечно. Но 5к туда, 5к сюда… Да и SATA-слотов у меня лишних нет.

Конкретно сколько файлов? 500k?

Не помню прямо сейчас (не у того компа), вроде около ляма, может чуть меньше.

Интересно, ты хоть названия-то прочитал у такого количества?

Нет конечно.

CrX ★★★
()
Ответ на: комментарий от CrX

У SquashFS имеется фатальный недостаток: падение скорости создания архива в случае когда применяются исключения. Не знаю насколько это будет заметно при высоких уровнях сжатия, но если в качестве компрессора использовать lz4, то замедление просто катастрофическое.

anonymous
()

В 7-zip, винраре и pearzip можно алгоритм выбрать отличный от дефолтного. Шок! А еще там zstd есть… Ну это не алгоритмы сжатия, а лишь форматы файлов

anonymous
()
Ответ на: комментарий от anonymous

Не знал. Никогда не использовал исключений. Вполне возможно. Только это недостаток, скорее всего, не SquasFS как такового, а конкретно утилиты mksquashfs, похоже?

CrX ★★★
()
Ответ на: комментарий от slowpony

Это решается компрессором, а не архиватором.

Но архивы тоже нужны. Например, чтобы передать кучу файлов через файлообменник. Так, чтобы качалось одним.

CrX ★★★
()
Ответ на: комментарий от x905

интересует «извлекать произвольные файлы без распаковки всего архива»

tar - это не иерархический, а линейный вариант представления данных. То есть, tar-файл - это конкатенация множества отдельных tar-файлов, каждый для одной версии отдельного архивируемого файла, причём версии архивируемых файлов располагаются одна за одной, безотносительно своего расположения в иерархических файловых системах и во времени.

Компрессор же, такой как xz, вообще не осведомлён о внутреннем формате потока, который в него попадает. При компрессии в него подаётся какой-то поток данных, он же выдаёт более компактное отображение этого потока. При декомпрессии - наоборот, подаётся компактное представление потока, а декомпрессор преобразует его в исходное состояние.

Таким образом, для «извлечения произвольных файлов, без распаковки всего архива» необходимо организовать две вещи:

  1. Разделение одного общего поточного tar-архива на отдельные секции, соответствующие границам файлов внутри архива, и проходящие компрессию отдельно.
  2. Индекс местоположения версий исходных файлов внутри множества сжатых tar-архивов, учитывающий их исходное расположение в иерархической файловой системе и времени.
QsUPt7S ★★
()
Ответ на: комментарий от slowpony

По моему такой формат архивов уже есть, называется zip.

Что примечательно, индекс (он в формате zip называется центральный каталог) располагается в конце архива. При добавлении файлов в архив можно прочитать центральный каталог в память, обкусить архив, дописать в него новые файлы, дописать обновлённый центральный каталог. То есть для добавления файлов в архив не требуется свободное место в объёме всего архива.

iliyap ★★★★★
()
Ответ на: комментарий от slowpony

а что разве всякие fb2, mobi и тп уже не являются архивами? Даже docx файлы это архив. Про картинки/видео вообще молчу …

ivanich10
()
Последнее исправление: ivanich10 (всего исправлений: 1)
Ответ на: комментарий от QsUPt7S

и это както реализовано в rar осталось докинуть атрибуты/права файлов

что там кто не знает и не понимает, и так ясно, но не решает проблему

x905 ★★★★★
()
Ответ на: комментарий от anonymous

У них формат простой: пару байт - длина файла, еще как-то путь кодируется, остальное данные, те можно в конец данные постоянно дописывать - это ничего не стоит, а вот при удалении файла архив перезаписывается

anonymous
()
Ответ на: комментарий от ivanich10

Нет конечно. Некоторые ФС могут что-то делать при некоторых настройках (правда таких полтора калеки - zfs и btrfs, про другие с хешами я не знаю, да и тот же btrfs сильно не надёжен по ряду других причин, zfs не использовал). Потому как ФС много и доверять им нельзя в общем случае. А про ненадёжность btrfs сейчас, он надёжен в том плане что во время штатной работы файлы не пропадут (когда-то давно это было не так пока оно альфой было), но вот если питание пропадёт во время работы, т.е. произойдёт нештатное событие, то у меня из 3 таких раз 2 раза эта ФС в тыкву превращалась, с тем же ext4 таких фокусов не наблюдал.

anonymous
()