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

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

9
задан 29 August 2013 в 11:10

2 ответа

Можно использовать следующий сценарий оболочки (я назвал его 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 
9
ответ дан 29 August 2013 в 11:10

Команда dtrx - ваш друг в этом вопросе.

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

Установить

sudo aptitude install dtrx

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

dtrx stuff.zip
0
ответ дан 29 August 2013 в 11:10

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

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