LINUX.ORG.RU

p7zip


0

0

p7zip - порт 7z.exe и 7za.exe (command-line версия 7zip, смотреть www.7-zip.org) для Unix.

7-Zip архиватор файлов с высокой степенью сжатия. На данный момент, p7zip (как и 7-zip) поддерживает только little-endian machine. Главные возможности и остальная информация - http://www.7-zip.org/

7-Zip is a free software distributed under the GNU Lesser General Public License.

>>> http://p7zip.sourceforge.net/

★★★★

Проверено: Demetrio ()
Ответ на: комментарий от Orlangoor

Заебись, простите мой плохой французский.

Скачай mc, если нет. Найди документацию, а в ней описание формата. Вкури его, нади сигнатуру, отсеки начало sfx, потом запусти эту хрень под wine, если у тебя не x86...

Да идите вы на хуй, простите-извините.

Хотите трахаться - под лестницей свободно, 5 евро.

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

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

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

> Зачем трахаться с улучшением формы каменного зубила или ножа
> ради 2%.

А вот не 2. А значительно больше. Преимущество металлического ножа перед каменным легко ощутимо при использовании (не веришь - попробуй), а вот 2 процента практически неощутимы. Зато ощутимо двух-...трёхкратное увеличение времени сжатия. В моём случае 200.300% перевешивают 2%

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

> И какого чёрта ты говорил, что этого нет? Есть же, только
> тебе лень посмотреть!

bash-2.05b$ 7z -h

7-Zip 3.13  Copyright (c) 1999-2003 Igor Pavlov  2003-12-10
p7zip Version 0.91
Support for files larger than 2GiB : Enabled

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<Commands>
  a: Add files to archive
  d: Delete files from archive
  e: Extract files from archive
  l: List contents of archive
  t: Test integrity of archive
  u: Update files to archive
  x: eXtract files with full pathname
<Switches>
  -bd Disable percentage indicator
  -i[r[-|0]]{@listfile|!wildcard}: Include filenames
  -m{Parameters}: set compression Method
  -o{Directory}: set Output directory
  -p{Password}: set Password
  -r[-|0]: Recurse subdirectories
  -sfx[{name}]: Create SFX archive
  -t{Type}: Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
  -w[{path}]: assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
  -y: assume Yes on all queries

Где? Ткни в строчку! А вот с rar'ом работает, кстати:
tar cf - . | rar a -sitest.tar ../test.tar.rar

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

> А вот не 2. А значительно больше.

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

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

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

Не спорю. Но - не в рабочее время (если только это "интересное" не является твоей основной работой). По работе - использовать стандартные форматы. Вполне возможно, что 7z когда-нибудь действительно заменит zip для широких масс. Но не сегодня и даже не завтра. Потому лозунги "выбросим zip и все сразу перейдём на 7z" просто смешны.

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

> Запусти 7za.

bash-2.05b$ tar cf - . | 7za a -sitest.tar ../test.tar.7z

7-Zip (A) 3.13  Copyright (c) 1999-2003 Igor Pavlov  2003-12-10
p7zip Version 0.91
Support for files larger than 2GiB : Enabled

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<Commands>
  a: Add files to archive
  d: Delete files from archive
  e: Extract files from archive
  l: List contents of archive
  t: Test integrity of archive
  u: Update files to archive
  x: eXtract files with full pathname
<Switches>
  -bd Disable percentage indicator
  -i[r[-|0]]{@listfile|!wildcard}: Include filenames
  -m{Parameters}: set compression Method
  -o{Directory}: set Output directory
  -p{Password}: set Password
  -r[-|0]: Recurse subdirectories
  -sfx[{name}]: Create SFX archive
  -t{Type}: Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
  -w[{path}]: assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
  -y: assume Yes on all queries
Incorrect command line


Internal Error #7
-------------------------------
????
Я уже начинаю бояться - может, у меня какой-то неправильный
7za? :)

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

И правда, есть si в новой версии. Ну что ж, попробуем поприменять...

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

>tar cf - . | 7za a -sitest.tar ../test.tar.7z

Немного подправлю:

tar c .|7za -si a ../test.tar.7z

7za -so e ../test.tar.7z|tar x

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

> Ну можно использовать md5sum

Как md5sum поможет _восстановить_ частично подпорченный архив (например, попавший на bad sector)?

> и шифрование и для gz/bz/7z.

Можно, но неудобно.

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

>Как md5sum поможет _восстановить_ частично подпорченный архив (например, попавший на bad sector)?

А как RAR поможет восстановить? Я такого не припомню, чтобы WinRAR восстанавливал, хотя с битыми архивами приходилось встречаться не раз, вылезала только табличка с предожением пойти угадай куда. А каким алгоритмом? Суммируются count участков, с каждого из этих участков берётся хеш длиной length, если хеш архива (хешируются только данные, не другие хеши) не совпадает с нужным, то ищется участок, хеш которого не совпадает с требуемым, из суммы вычитаются все остальные участки и вычисляется исчезнувший, проверяется хеш архива? Для этого нужно дополнительно грубо говоря length*count+size/count байтов, хотя это и не так много.

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

> А как RAR поможет восстановить? Я такого не припомню, чтобы WinRAR восстанавливал, хотя с битыми архивами приходилось встречаться не раз, вылезала только табличка с предожением пойти угадай куда.

Наверное, архив был без Recovery Record. RR добавляется опционально при создании архива (опция '-rr' в текстовой версии или галка в WinRar). Рар имеет команду восстановления ('r' или педаль в WinRar). При наличии RR, если повреждения не очень обширные (не превосходят размера RR, который можно увеличить при необходимости), то rar _полностью_ восстановит попорченный архив.

anonymous
()

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

Не катит. И точка.

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

>> Total Commander ... всего лишь очередная поделка

Крутая поделка. Или мне каждому бухгатеру CLI курс проводить? А их, предположим 50-100! НЕ упаришься?

Foster
()
Ответ на: комментарий от Sun-ch

>>> админы не любят плодить лишние сущности;

Саныч, 100 баллов! Дай бог с насущными справиться...

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

> Лучше алгоритм расскажи.

Если только в общих чертах. В точности алгоритм знает только автор.

Скажем, у нас данные представляют 10 блоков одинаковой длины, к каждому мы добавляем котрольную сумму, которая поможет проверить целостность блока. А так же мы добавляем одиннадцатый "recovery" блок, который есть XOR данных 10 блоков (т.е. первый байт 11-го блока равен ксору первых байтов данных 10 блоков, второй байт равен ксору вторых байтов и т.д.)

Далее, предположим какой-то _один_ (но неважно какой) из наших блоков запоролся, этот факт мы узнаем сверяя котрольные суммы. Так как 10 оставшихся блоков целые, то мы можем просто вычислить содержимое запорченного блока.

Это лишь общая идея, в реальности все немного хитрее (например, recovery блоки могут отдельно создаваться для четных и нечетных блоков, тогда будут не страшны потеря данных, затрагивающая два соседних блока и т.д.)

Кстати, один чувак зарелизил подобный алгоритм в виде самостоятельной проги (у меня где-то валяется), которая по заданному файлу создает для него recovery record в виде отдельного файла. Потом используя эту rr можно будет восстановить файл, если он вдруг побился.

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

А тебе какое дело - будет он использовать или нет. Каждому ламеру объяснять глупо. Можешь в комплекте README класть. Только глупый не сможет запустить wine. Назови его sfx_archive.exe. Раз не нравится - не ешь.

Совсем охуел. Это каждый ламер отступает от норм. Есть нормы bz2 gz rar вот и юзай их, а когда каждый будет знать о твоем 7zip он мне севенап напоминает, выпил и тормознул...я о нем только сейчас услышал и завтра забуду.

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

Ну у тебя и вопросы саныч... В mc жмешь F7 и ищеш по сигнатуре. Потом переключаешься в режим hex просмотра и смотришь смещение. А насчет того что обычный пользователь это не будет делать, так обычные пользователи на спарках и не сидят ;)

Напиши мини-ХАУТУ. А то это геморойно что то.

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

А сигнатура определяющая начало файла предельно проста и может быть найдена в документации к формату

Аааа, въехал, что бы оказывается юзать какой либо архиватор-я должен сидеть и изучать формат? Ты не гонишь?

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

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

А не проще отослать письмо с матами и требованием отослать нормальный архив? Он мне надо что то искать, когда очумелый пионер что то придумывает?

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

>Скажем, у нас данные представляют 10 блоков одинаковой длины, к каждому мы добавляем котрольную сумму, которая поможет проверить целостность блока. А так же мы добавляем одиннадцатый "recovery" блок, который есть XOR данных 10 блоков (т.е. первый байт 11-го блока равен ксору первых байтов данных 10 блоков, второй байт равен ксору вторых байтов и т.д.)

>Далее, предположим какой-то _один_ (но неважно какой) из наших блоков запоролся, этот факт мы узнаем сверяя котрольные суммы. Так как 10 оставшихся блоков целые, то мы можем просто вычислить содержимое запорченного блока.

Значит я угадал (см. мой пост ранее). Но для наименьшего размера RR длины этих блоков должны быть примерно равны с их количеством, помноженным на длину их хешей.

>Кстати, один чувак зарелизил подобный алгоритм в виде самостоятельной проги (у меня где-то валяется), которая по заданному файлу создает для него recovery record в виде отдельного файла. Потом используя эту rr можно будет восстановить файл, если он вдруг побился.

Я думаю, что такую прогу написали очень много разных чуваков, и никто не знал об остальных. :) Интересно, этот алгоритм запатентован? :) Двойной клик же запатентовали. :)

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

>А как RAR поможет восстановить?

Может, ты ему размер информации для восстановления сделай чуть больше и все тебе будет.

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

... но только для извлечения. Создаёт только ZIP/RAR.

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

>BTW, WinRAR поддерживает 7zip.

Но только к сожалению в 3.4 версии появилась поддержка... А у некоторых ушлепков по прежнему стоит 2.7 =(.

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

> И потом, total commander rar'ы понимает, а 7zip - кажется, нет

Если руки из жопы растут, то конечно не понимает. А если не совсем - так всё прекрасно настраивается. А к FAR он вообще плагином цепляется.

Choo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.