Существует ли утилита для извлечения/сжимания файлов с помощью какого-либо типа архивации алгоритма?

Обычно я использую tar для архивов *.tar, zip/unzip для *.zip, 7z для *.7z, и т.д... Существует ли über утилита, которые комбинируют все алгоритмы?

Вот псевдо использование этой утилиты:

Извлечение:

$ unpack *.tar -d /home/c0rp/this_is_tar
$ unpack *.rar -d /home/c0rp/this_is_rar
$ unpack *.tar.gz -d /home/c0rp/this_is_targz
$ unpack *.zip -d /home/c0rp/this_is_zip
$ unpack *.7z -d /home/c0rp/this_is_7z

Сжатие:

$ pack some_name.tar /home/c0rp/for_tar1 /home/c0rp/for_tar2
$ pack some_name.rar /home/c0rp/for_rar1 /home/c0rp/for_rar2
$ pack some_name.tar.gz /home/c0rp/for_targz1 /home/c0rp/for_targz2
$ pack some_name.zip /home/c0rp/for_zip1 /home/c0rp/for_zip2
$ pack some_name.7z /home/c0rp/for_zip1 /home/c0rp/for_7z
6
задан 21 November 2014 в 19:28

2 ответа

Я просто понял, что С 7 zip (команда 7z) может сделать это. С 7 zip в состоянии извлечь и сжать много типов архивов. Вот кавычка от man 7z:

DESCRIPTION
    7-Zip is a file archiver with the highest compression ratio. The pro-
    gram supports 7z (that implements LZMA compression algorithm), LZMA2,
    XZ, ZIP, Zip64, CAB, RAR (if the non-free p7zip-rar package is
    installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem
    images and DEB formats...

С 7 zip может извлечь/сжать архивы и обнаруживает сам сжимающийся алгоритм.

Это должно работать, как Вы ожидаете:

Сжатие

$ 7z a file.tar.gz file
$ 7z a file.zip file
$ 7z a file.7z file
$ 7z a file.gzip file

Извлечение

$ 7z x file.tar.gz
$ 7z x file.zip
$ 7z x file.7z
$ 7z x file.gzip
<час>

Также вот немного теста. Здесь я создаю пять архивов и даю им различные расширения файла.

$ cd /tmp
$ touch testfile
$ for alg in {zip,gzip,7z,tar.gz,rar};do 7z a testfile."$alg" testfile;done
$ ls testfile*
testfile.7z
testfile.gzip
testfile.rar
testfile.tar.gz
testfile.zip

Теперь для обнаружения сжимающегося алгоритма я буду использовать binwalk утилита.

$ for arch in testfile.*;do binwalk "$arch" | sed -n '4p' | awk {'print $3'};done
7-zip
gzip
7-zip
gzip
Zip
6
ответ дан 17 November 2019 в 09:11

http://packages.ubuntu.com/trusty/dtrx

разумно извлечение несколько типов архивирования

Для установки:

sudo apt-get install dtrx

Домашняя страница: http://brettcsmith.org/2007/dtrx/

2
ответ дан 17 November 2019 в 09:11

Другие вопросы по тегам:

Похожие вопросы: