Как быстро извлечь из командной строки все виды архивных файлов?

8

Много раз мне нужно извлекать разные типы архивных файлов, используя commad-line. Но не все время я помню точную команду для любого типа файлового архива. Поэтому я должен тратить время и искать снова. Как я могу избежать этого?

    
задан Radu Rădeanu 29.08.2013 в 07:10
источник

2 ответа

8

Вы можете использовать следующий сценарий оболочки (я назвал его extract , и я положил его в ~/bin ):

#!/bin/bash

if [ $# -lt 1 ];then
  echo "Usage: 'basename $0' FILES"
  exit 1
fi

# I found the following function at https://unix.stackexchange.com/a/168/37944
# which I improved it a little. Many thanks to sydo for this idea.
extract () {
    for arg in $@ ; do
        if [ -f $arg ] ; then
            case $arg in
                *.tar.bz2)  tar xjf $arg      ;;
                *.tar.gz)   tar xzf $arg      ;;
                *.bz2)      bunzip2 $arg      ;;
                *.gz)       gunzip $arg       ;;
                *.tar)      tar xf $arg       ;;
                *.tbz2)     tar xjf $arg      ;;
                *.tgz)      tar xzf $arg      ;;
                *.zip)      unzip $arg        ;;
                *.Z)        uncompress $arg   ;;
                *.rar)      rar x $arg        ;;  # 'rar' must to be installed
                *.jar)      jar -xvf $arg     ;;  # 'jdk' must to be installed
                *)          echo "'$arg' cannot be extracted via extract()" ;;
            esac
        else
            echo "'$arg' is not a valid file"
        fi
    done
}

extract $@

Не забудьте сделать исполняемый файл сценария:

chmod +x ~/bin/extract

Использование:

extract file_1 file_2 ... file_n 
    
ответ дан Radu Rădeanu 29.08.2013 в 07:10
источник
8

Команда dtrx является вашим другом.

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

Установка

sudo aptitude install dtrx

Использование

dtrx stuff.zip
    
ответ дан Thomasleveil 08.09.2013 в 20:07
источник

Ознакомьтесь с другими вопросами по меткам