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


Vaulter аватар

Vaulter - Posted on 05 Февраль 2010

###   Handy Extract Program
 
extract () {
    if [ -f $1 ] ; then
        case $1 in
            *.tar.bz2) tar xvjf $1   ;;
            *.tar.gz)  tar xvzf $1   ;;
            *.bz2)     bunzip2 $1    ;;
            *.rar)     unrar x $1    ;;
            *.gz)      gunzip $1     ;;
            *.tar)     tar xvf $1    ;;
            *.tbz2)    tar xvjf $1   ;;
            *.tgz)     tar xvzf $1   ;;
            *.zip)     unzip $1      ;;
            *.Z)       uncompress $1 ;;
            *.7z)      7z x $1       ;;
            *)         echo "'$1' cannot be extracted via >extract<" ;;
        esac
    else
        echo "'$1' is not a valid file"
    fi
}

Уже не помню где нашел, не мое :)

Поместить в ~/.bashrc или profile

0
Ваша оценка: Ничего

для запаковки)

pk() {
    if [ "$1" ] ; then
        TYPE="$1"
        shift
        case "$TYPE" in
            tbz) tar cjvf $2.tar.bz2 $@   ;;
            tgz) tar czvf $2.tar.gz $@    ;;
            tar) tar cpvf $2.tar $@       ;;
            bz2) bzip $@                  ;;
            gz)  gzip -c -9 -n $@ > $2.gz ;;
            zip) zip -r $2.zip $@         ;;
            7z)  7z a $2.7z $@            ;;
            *) echo "'$TYPE' не может быть упакован с помощью pk()" ;;
        esac
    else
        echo "'$1' не является поддерживаемым файлом"
    fi
}

А как быть если у меня gunzip выводит "бопну" при содержании внутри архива файлов с кириллическими именами?

$ гзип --выведи-бнопну | enconv

или если кодировку знаешь

$ гзип --выведи-бнопну | iconv -f koi-8

Я для запаковки/распаковки использую http://www.nongnu.org/atool/ , удобная штука, есть в репах Дебиана

tar сам распознаёт тип архива, так что достаточно

*.tar.*)   tar xvf $1;;
 

добавьте ещё lzma

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.