5

Иногда меня смущают различные параметры командной строки, необходимые для запуска распространенного программного обеспечения для архивирования и сжатия Unix (например, gzip, bzip2, zip, tar).

Есть ли программа, которая может просто делать то, что я имею в виду для обычных случаев? Например:

program --compress --gzip foobar
program --extract foobar.tar.bz2
program --extract foo.zip

3 ответа3

8

Как пример 7z.

7z a -tgzip foobar.gz foobar
7z e foobar.gz

Где a - добавить файлы в архив, -t{Type} - установить тип архива (7z, zip, gzip, bzip2 или tar), e - извлечь файлы из архива. Больше информации man 7z .

1

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

tar --create --gzip --file out.tar.gz in in2 in3
# same thing
tar -czf out.tar.gz in in2 in3

tar --extract --file in.tar
tar -xf in.tar

Это будет работать и для файлов gzipped и bzip2ed. (Предполагая, что у вас действительно установлены такие программы.)

Редактировать: Ах да, забыл о распаковке. Это не включено в tar видимому, по патентным причинам или тому подобное. Просто используйте unzip приложение, чтобы извлечь те:

unzip in.zip
1

atool предназначен для этой работы. Копия справочной страницы доступна здесь.

Для сжатия файлов используйте

apack ARCHIVE FILE

и для их распаковки используйте

aunpack ARCHIVE

(в качестве альтернативы вы можете использовать atool -a и atool -x соответственно).

Он работает практически со всеми форматами архивов, которые вы можете себе представить, включая gzip, bzip, lzip, 7z, rar, ar, deb, rpm, jar [1] и большинство комбинаций tar и метода сжатия.

Преимущество этого по сравнению с 7zip заключается в том, что 7zip удаляет исполняемые разрешения. Так, например, 7zip значительно усложняет установку программного обеспечения из архивных источников, потому что вам нужно вручную выполнить chmod +x соответствующие файлы перед запуском любого скрипта make или любого инсталляционного скрипта.


[1] Ссылка на онлайн-справочную страницу предназначена для более старой версии, которая не обрабатывает файлы JAR.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .