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

13

В настоящий момент, если я загружаю сжатый файл, это может быть любой из архива .tar.gz, архива tar.bz2, архива .zip или архива .gz. И каждый раз, когда я делаю это, я должен помнить, каковы параметры командной строки для этой программы.

Есть ли какая-нибудь программа CLI, куда я могу просто пойти:

отмена сжатия.

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

Мача
источник
Я не могу найти или создать какие-либо теги, такие как archiveи compressionт. Д. Может ли кто-то еще добавить правильный?
Мача
@Tshepang: исправлено.
Мача

Ответы:

11

Вы можете использовать p7zip . Он автоматически определяет тип архива и распаковывает его.

p7zip - версия 7-Zip для Unix / Linux для командной строки , созданная независимым разработчиком.

7z e <file_name>

Hemant
источник
5

Я нашел этот маленький фрагмент некоторое время назад и использую его с тех пор. У меня просто есть это в моем файле .bashrc

extract () {
if [ -f $1 ] ; then
    case $1 in
        *.tar.bz2)  tar xjf $1      ;;
        *.tar.gz)   tar xzf $1      ;;
        *.bz2)      bunzip2 $1      ;;
        *.rar)      rar x $1        ;;
        *.gz)       gunzip $1       ;;
        *.tar)      tar xf $1       ;;
        *.tbz2)     tar xjf $1      ;;
        *.tgz)      tar xzf $1      ;;
        *.zip)      unzip $1        ;;
        *.Z)        uncompress $1   ;;
        *)          echo "'$1' cannot be extracted via extract()" ;;
    esac
else
    echo "'$1' is not a valid file"
fi
}
Dason
источник
1
Это более эффективно, чем принятый ответ, так как 7z e foo.tar.gzпросто оставляет вам foo.tarфайл.
Уилфред Хьюз
2

В Debian / Ubuntu есть unpпакет, который представляет собой скрипт Perl, который выступает в качестве интерфейса для многих утилит архивирования.

Janc
источник
2

Из другого вопроса : atool , который также обрабатывает различные типы архивов и является более мощным, чем unpпотому, что он также обрабатывает список содержимого, находит различия между архивами и т. Д.

Томас Фемель
источник
1

GNU tar (и звездочка) имеет по крайней мере некоторые возможности автоматического определения сжатия:

tar xf foo.tar.gz
tar xf foo.tar.bz

просто работай.

maxschlepzig
источник
Это зависит от версии tar, в каких форматах он может автоматически обнаруживаться, но кроме этого он работает хорошо ... IIRC starна самом деле является более стандартизированным способом, где tar в GNU является нестандартным расширением.
ксенотеррацид
Последняя версия GNU tar может распаковать все сжатые архивы, созданные с помощью любого из переключателей фильтра сжатия (z, j, J, --lzma), автоматически обнаружит сжатие.
Полемон
@xenoterracide: Ну, автор star много критиковал GNU tar в своем обычном стиле - эти записи могут быть предвзятыми (игнорируя плохие моменты о star и хорошие моменты о tar GNU), содержать, вероятно, некоторую FUD и, вероятно, устарели.
maxschlepzig
1

Я думаю, arkчто инструмент архивации KDE можно запустить без графического интерфейса. Из arkсправочной страницы

ark --batch archive.tar.bz2

Извлечет archive.tar.bz2 в текущий каталог, не показывая никакого графического интерфейса.

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

xenoterracide
источник
1

Я удивлен, что никто не упомянул инструмент dtrx , который был предложен в этом ответе .

Кажется, чтобы соответствовать просьбе к тройнику.

HighCommander4
источник
0

Unarchiver поддерживает извлечение около 50 различных форматов с единообразным интерфейсом.

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

Посмотреть его- manстраницу .

Версия для командной строки поддерживает Linux и доступна здесь .

Том Хейл
источник