LINUX.ORG.RU

Как сказать rar, чтобы не дублировал одинаковые файлы при сжатии

 


0

1

Всем привет!

У меня результаты сжатия в гуях под виндами и в консоли гит-баша отличаются примерно в 35 раз по размеру. гуёвый сжимальщик как-то на автомате умеет учитывать одинаковые файлы и не сжимать их, а проставлять ссылки, а у консольного че-то не могу найти нужную опцию. Поэтому и получаются в терминале файлы толще, чем в гуях. Мб сталкивался кто? Сжимаю так:

rar a -r -m5 -or myfolder.rar myfolder/
★★

А тебе не кажется, что использовать rar в 2017 году — в принципе не очень хорошая идея?

Есть tar, ну и 7zip вроде как в моде

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

Обрати внимание ещё на

The file order list for solid archiving – rarfiles.lst

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

rarfiles.lst может быть разным в винде и линуксе.

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)

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

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

Да норм. 2 метра вместо 70 передавать на сервак - это уже очень неплохо.

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

В б-гомерзских виндах винрар умеет распаковывать много чего, в т.ч. 7zip.

te111011010
()
26 августа 2019 г.

Консольные команды сжатия RAR:

RAR4:

rar a -t -o- -mt2 -ep1 -scUL -htc -ma4 -rr2p -v300m -md4m -m1 -hpPASSWORD archive.rar input


RAR5:
rar a -t -o- -mt2 -ep1 -scUL -htb -ma5 -rr2p -v300m -md32m -m1 -oh -ol -hpPASSWORD archive.rar input


Пояснения:
a добавить в архив
-t протестировать
-o- не перезаписывать
-mt2 использовать два ядра
-ep1 не использовать абсолютные пути
-scUL использовать юникод в именах файлов
-htc использовать CRC32 хэш
-htb использовать новый BLAKE хэш (RAR5 only)
-ma4 создать архив RAR v4
-ma5 создать архив RAR v5
-rr2p добавить 2% информации восстановления
-v300m разбить архивы по 300 МБ
-md4m использовать размер словаря 4 МБ (максимум для RAR4)
-md32m использовать размер словаря 32 МБ (дефолт для RAR5, нужно 400 МБ RAM для работы)
-m1 использовать faster метод сжатия, более тяжелые 2,3... слишком медленные
-hpPASSWORD задать пароль (пишется слитно с командой), зашифровав также имена файлов
-oh сохранять hard links как ссылки, а не файлы (RAR5 only)
-ol сохранять символические ссылки как ссылки (Windows: RAR5 only, Unix: RAR4-5)

sudo apt install rar
man rar
или более подробный, с примерами:
man /usr/share/doc/rar/rar.txt.gz

rar l archive.rar показать информацию об архиве
rar t archive.rar протестировать архив

File-Roller архиватор использует следующие приоритеты при распаковке:
rar (trial version, вообще это упаковщик, но тоже умеет unpack)
unrar-nonfree
unrar-free
p7zip-rar

Nakita-Markov
()
Ответ на: комментарий от dexpl

Я не нашёл дедупликации в архиваторах, если конечно не считать tarsnap. А так в 2019 рар это лучший формат на свете — 7z очень задалбывает тем, что распаковывается полчаса, а zip просто убог и имеет проблемы с кодировками и архиваторами. Вот и остаётся один рар.

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

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

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

А зачем ты здесь со своим ненужным комментом о некропостинге?

Чтобы задать тебе тот вопрос, который я задал. Твоя очередь отвечать.

dexpl ★★★★★
()
Ответ на: комментарий от Nakita-Markov

Ты забыл ещё сказать, что надо hardlink использовать, чтобы получить желаемый (или близкий к нему) результат. Я вот не знал о таком софте когда это было актуально. Но вообще использование хадлинков очень чревато.

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

Тоже кстати написал на питоне и переписал на си. Хотя тогда hardlink ещё не было.

anonymous
()

Кстати, а как rar, имея 2...5% избыточности, умудряется восстанавливать произвольный потерянный байт информации? Логика мне подсказывает, что ошибки можно только детектировать, а чтобы восстановить, нужно 100% избыточности (x2).

Хотя, вот избыточность есть и на CD/DVD, спутниковой, мобильной связи и явно не x2.

UPD. Всё очень сложно: Код Рида - Соломона.

Nakita-Markov
()
Ответ на: комментарий от aido

Ну вот 7zip как раз совместим с виндой, так как изначально для неё разрабатывался.

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

а zip просто убог и имеет проблемы с кодировками и архиваторами.

Проблемы с кодировками только у встроенного архиватора винды. Так-то UTF-8 прописана в стандарте ещё с 2007 года и нужно просто брать архиватор, который в зипе использует его. Даже архиватор в последних версиях шиндошс сможет распаковать (хотя запаковывает криво)

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

7z очень задалбывает тем, что распаковывается полчаса

А вы не пробовали уменьшить степень сжатия? Если архивируете на девятке, то и результат соответствующий, используйте степень сжатия 3 Кроме того есть вариант 7z с сжатием zstd которое быстрее и лучше чем deflate

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 1)
Ответ на: комментарий от Nakita-Markov

Пятизвездочный, иди лучше почитай википедию, вместо того, чтобы постить тупак.

Не разводи демагогию, отвечай на вопрос.

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

7-Zip есть и под GNU/Linux, и под Windows. С Tar вроде многие виндовские архиваторы работают (WinRAR и 7-Zip — точно работают, а встроенный ни с tar, ни с rar не работает — только с ZIP). Можно, кстати, и в ZIP паковать.

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

Ток deflate это zip/gzip. На девятке хорошо запаковывает (словарь больше надо, больше 256мб если данных полгига), но файлы то не мои, мне их только распаковать.

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

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

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

tar.rar или .tar.7z

А смысл? Если нужно сжать тарболл, то можно использовать GZip, BZip2 или XZ. И, насколько я помню, GZip виндовские архиваторы понимают (про другие компрессоры не знаю).

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

А тебе не кажется, что использовать rar в принципе не очень хорошая идея?

7z намного медленнее, чем rar, при тех же настройках, особенно на больших файлах и не использует многопоточность, несмотря на явное указание ее использовать и поддерживаемый ею метод lzma.

По крайней мере в Ubuntu 16.04 (архиваторы 2015-2016 годов) так обстоят дела. Но не думаю, что что-то изменилось, 7z всегда был аутсайдером.

Но, если кто-то хочет все-таки жевать кактус:

7z a -t7z -mhe=on -ssc -mmt=on -mhc=off -mtc=on -m0=lzma -mx=1 -md=8m -pPASSWORD -v300m -ms=off -ma=0 archive.7z input
Информация об архиве:
7z l archive.7z
7z l -slt archive.7z

У rar недостаток, что File-Roller показывает неправильные даты файлов в нем (но извлекает правильно), например, 2020 и 2009 года.

в 2017 году
в 2019 году

Ты так говоришь, как будто мир двигается к цивилизованности и прогрессу, а не мракобесию.

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

В 2012 году 60Гб образ только WinRAR и переваривал нормально. А сейчас и 4Гб 7z жмет как улитка.

anonymous
()

Давно хотел узнать. У меня иконка rar не отображается, а раньше все было нормально, потом что-то обновилось и фсё. Вроде после обновления share-mimo-info все сдохло, но это не точно. Рач.

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

-md=8m

ты поехавший шоле?

Сжимаю так для задач архивации и долговременного хранения файло, на время в принципе пофиг.

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=256m -ms=on file.7z dir/

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

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