LINUX.ORG.RU

Распаковка архива


0

1

Помогите вспомнить название команды, распаковывающей архив любого поддерживаемого типа. Есть в репозитории debian/ubuntu.

Гугл подсказал только e, но её нет в репозитории.

Отчётливо помню, что использовал описанную команду пару месяцев назад, по наводке из какого-то мануала.

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

★★

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

внезапно

$ tar -tvf /mnt/p/distfiles/atk-2.2.0.tar.xz |head -4
drwxrwxr-x 1001/1001         0 2011-09-27 02:25 atk-2.2.0/
-rwxr-xr-x 1001/1001     18615 2011-09-27 02:25 atk-2.2.0/depcomp
drwxrwxr-x 1001/1001         0 2011-09-27 02:25 atk-2.2.0/docs/
-rw-rw-r-- 1001/1001       910 2011-09-20 03:45 atk-2.2.0/docs/Makefile.am
$ tar -tvf /mnt/p/distfiles/adobe-flash-11.0.1.152.x86_64.tar.gz |head -4
-rw-rw-r-- flplbldr/flplbldr 18774024 2011-09-24 05:13 libflashplayer.so
drwxrwxr-x flplbldr/flplbldr        0 2011-09-24 05:13 usr/
drwxrwxr-x flplbldr/flplbldr        0 2011-09-24 05:13 usr/bin/
-rwxrwxr-x flplbldr/flplbldr   472616 2011-09-24 05:13 usr/bin/flash-player-properties
$ tar -tvf /mnt/p/distfiles/alsa-driver-1.0.24.tar.bz2 |head -4
drwxr-xr-x root/root         0 2011-01-27 16:59 alsa-driver-1.0.24/
-rw-rw-r-- root/root      2305 2011-01-27 15:09 alsa-driver-1.0.24/Makefile.conf.in
drwxrwxr-x root/root         0 2011-01-27 15:09 alsa-driver-1.0.24/acore/
-rw-rw-r-- root/root      1457 2011-01-27 15:09 alsa-driver-1.0.24/acore/memalloc.inc1
anonymous
()
Ответ на: комментарий от anonymous

ну и ещё есть bsdtar из libarchive, он понимает rpm/deb и тд

anonymous
()
Ответ на: внезапно от anonymous
$ tar -xvf test.zip 
tar: Это не похоже на tar-архив
tar: Завершение работы с состоянием неисправности с из-за возникших ошибок

Увы, но это не универсальное решение. Про то, что tar распаковывает tar.xz, tar.bz2 и tar.xz я в курсе.

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

яж написал: 7z и libarchive

$ bsdtar -tvf /mnt/p/distfiles/zip30.zip |head -4
drwxrwxrwx  0 0      0           0 июля  5  2008 zip30/
drwxrwxrwx  0 0      0           0 июля  5  2008 zip30/acorn/
-rwxrwxrwx  0 0      0       16477 дек.  4  2004 zip30/acorn/acornzip.c
-rwxrwxrwx  0 0      0        4039 янв.  6  2007 zip30/acorn/GMakefile

$ 7z t /mnt/p/distfiles/zip30.zip |head -9

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

Processing archive: /mnt/p/distfiles/zip30.zip

Testing     zip30
Testing     zip30/acorn
Testing     zip30/acorn/acornzip.c
anonymous
()

Универсально напишите скрипт, который будет определять тип архива и вызывать нужный «распаковщик»:

#!/bin/sh
case `file -b "$1" | awk '{ print $1 }'` in
   "7-zip")
      7z e "$1" ;;
   "bzip2")
      ;;
   "gzip")
      ;;
   "XZ")
      ;;
esac

Только нужно дописать проверку что это ещё и tar архив, так же на $2 можно приделать путь для распаковки, так что дерзайте и будет у вас универсальный «распаковщик».

kostik87 ★★★★★
()

Вот цитатка из мана:

The program supports 7z (that imple-
       ments LZMA compression algorithm), ZIP, CAB, ARJ, GZIP, BZIP2, TAR, CPIO,  RPM  and  DEB  formats.
       Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format.

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

Если установлен unrar, она еще и rar'ы распаковывает. Причем правильно (кодировку не сохраняет, а декодирует в текущую локаль).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от kostik87

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

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

Ага, anonymous выше уже предлагал, спасибо. Да, он ещё и rar умеет.

prozium ★★
() автор топика

atool

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

Является оберткой над tar gzip unzip unrar p7ip и прочее.

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