С увеличением числа форматов файлов архивов и сжатых данных существует ли единый бесплатный инструмент командной строки с открытым исходным кодом, чтобы управлять ими всеми? Возможно что-то с последовательным / унифицированным набором флагов? (обратите внимание на мою дружескую неявную ссылку на tar )
Однажды я столкнулся с набором псевдонимов, предназначенных для значительного упрощения задачи сжатия / распаковки файлов с привязками к tar
другим утилитам и другими утилитами, но я больше не могу найти это.
Обновление:
Как я могу настроить что-то вроде того, atool
чтобы не использовать его unzip
для извлечения zip-файлов (которые, очевидно, не могут обрабатывать файлы размером более 4 ГБ) и использовать gunzip
вместо этого?
$ aunpack large_file.zip
error: Zip file too big (greater than 4294959102 bytes)
Archive: large_file.zip
warning [large_file.zip]: 1491344848 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [large_file.zip]: start of central directory not found;
zipfile corrupt.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
aunpack: unzip ...: non-zero return-code
tar
utilities
compression
Амелио Васкес-Рейна
источник
источник
unpack
отличаться отatool
?7z
.Ответы:
Я использую Atool . Это делает работу. Работает со многими, хотя и не со всеми форматами:
tar, gzip, bzip2, bzip, lzip, lzop, lzma, zip, rar, lha, arj, arc, p7zip и т. д.
Эти инструменты сжатия по-прежнему необходимы, хотя atool для них просто интерфейс.
Мне особенно нравится
als
команда, которая предоставляет список всех поддерживаемых форматов архивов.Основная
atool
команда использует свои собственные флаги для извлечения архивов (передачи соответствующих флагов определенным базовым инструментам извлечения).О, и это в репозиториях некоторых дистрибутивов (в моем случае Fedora, хотя, насколько я помню, тогда, когда я использовал Ubuntu, тогда их не было в их репозиториях. Я установил из тарбола).
Обновление репозиториев : atool находится в репозиториях следующих дистрибутивов (только текущие выпуски проверены):
Я уверен, что есть и другие ... правдоподобно, самые современные дистрибутивы.
Ответ на обновленный вопрос «Как я могу настроить что-то вроде atool, чтобы не использовать unzip для распаковки zip-файлов ... и использовать вместо этого gunzip» :
Отредактируйте файл конфигурации atool
~/.atoolrc
и добавьте строку:с правильным путем к вашей программе gunzip.
Смотрите man-страницу для полного списка возможных переменных, которые вы можете поместить в этот конфигурационный файл, которых много . Если параметры командной строки, необходимые для gunzip, отличаются от unzip, вам, возможно, придется изменить сам исходный код atool (perl).
источник
Вот небольшая функция оболочки, которая заботится о нескольких типах архивов.
Я нашел оригинальную версию этой функции где-то в сети и немного изменил ее, чтобы извлечь
ar
архивы и сжатыеtar
архивы xz .источник
bash
иzsh
, но это должно работать и сsh
.В АВФ файловая система представляет собой вид файловой системы , где каждый архивный файл (например
/path/to/foo.zip
) доступен как каталог (~/.avfs/path/to/foo/zip#
для данного примера). AVFS обеспечивает доступ только для чтения к большинству распространенных форматов архивных файлов.Avfs использует внешние помощники, которые могут быть легко настроены путем редактирования файлов
/usr
(к сожалению, с avfs 1.0 нет возможности использовать файлы в/usr/local
или в вашем домашнем каталоге, вам нужно редактировать файлы/usr
или перекомпилировать)./usr/share/avfs/extfs/ext-uzip
это скрипт для работы с.zip
файлами, измените его, если вы не хотите использовать/usr/bin/unzip
. Вместо этого вы можете избежать использования 7z: попробуйте отредактировать/usr/share/avfs/extfs/extfs.ini
и измените строкуext-uzip
наu7z .zip
.источник