Удобная распаковка архивов

На данный момент в десктопных дистрибутивах линукса нет никаких проблем с архивами. Пара кликов и он уже распакован. А вот в серверных версиях приходится помнить команды. Причём ладно бы одну для всех, дак нет, для каждого расширения архива своя команда. Сегодня мы исправим этот недочёт.

Ничего особенного делать не будем, просто воспользуемся alias, о которых я как то писал. Только будем использовать в связке с небольшим скриптом. После всех манипуляций вам нужно будет запомнить только команду extract, именно ей вы будете распаковывать все архивы.

Итак, нам нужно отредактировать файл .bashrc, который находится в домашней папке

cd
sudo nano ~/.bashrc

И в конце файла добавляем скрипт

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
extract () {
	if [ -f $1 ] ; then
		case $1 in
			*.tar.bz2)   tar xvjf $1    ;;
			*.tar.gz)    tar xvzf $1    ;;
			*.bz2)       bunzip2 $1     ;;
			*.rar)       rar 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 "don't know how to extract '$1'..." ;;
		esac
	else
		echo "'$1' is not a valid file!"
	fi
}

Сохраняем (Ctrl + O) и закрываем (Ctrl + X). Всё, теперь если нужно, к примеру, распаковать файл soft.tar.gz, то просто вводим такую команду

extract soft.tar.gz

И файл распакован. Но если будет ошибка, вроде don't know how to extract soft.tar.gz, то вы пытаетесь распаковать неизвестный скрипту формат.

2011-04-27 06:19:00
Кто-нибудь знает как правильно распаковывать архивы содержащие кириллицу в именах файлов? Пример простой - запаковали под win, распаковываем под linux. Как можно указать кодовую страницу имён файлов?
Limon Monte
2011-04-27 08:16:00
для zip отличное работает это: wget http://archive.ubuntu.com/ubuntu/pool/main/u/unzip/unzip_5.52-12ubuntu1_i386.deb sudo apt-get remove unzip p7zip-full sudo dpkg -i unzip_5.52-12ubuntu1_i386.deb