воскресенье, 23 декабря 2007 г.

Совет по распаковке архивов из консоли

При работе в консоли время от времени возникает необходимость распаковать какой-либо архив. Т. к. это требуется не так уж часто, то команды и все необходимые ключи, которые надо с ними использовать для распаковки каждого типа архива, постоянно вылетают их головы.

Обычно в таких случаях я обращался к помощи man и в который раз искал необходимые для распаковки архива команды.

С недавних пор я лишен данной проблемы, т. к. написал небольшой скрипт, который избавляет от необходимости помнить все команды и соответствующие им ключи. Мелочь, а приятно. :)

Вот этот скрипт:
#!/bin/bash
# Скрипт распаковки наиболее распространенных архивов

for file in "$@"
do
if [ -f "$file" ]
then
case "$file" in
*.tar.bz2) tar xjf "$file" ;;
*.tar.gz) tar xzf "$file" ;;
*.bz2) bunzip2 "$file" ;;
*.deb) ar x "$file" ;;
*.gz) gunzip "$file" ;;
*.rar) unrar x "$file" ;;
*.rpm) rpm2cpio "$file" | cpio --quiet -i --make-directories ;;
*.tar) tar xf "$file" ;;
*.tbz2) tar xjf "$file" ;;
*.tgz) tar xzf "$file" ;;
*.zip) unzip "$file" ;;
*.Z) uncompress "$file" ;;
*.7z) 7z x "$file" ;;
*) echo "'$file' cannot be extracted via extract" ;;
esac
else
echo "'$file' is not a valid file"
fi
done

4 комментария:

Анонимный комментирует...

А как же память? Ее тренировать надо :)
Представляю, как тебе неудобно будет работать на другой машине, без скриптов.

Dmitry Konishchev комментирует...

Да нет, для основных типов архивов я, конечно же, команды помню, но вот, например, для таких как *.Z, *.rpm и *.deb, с которыми я встречаюсь довольно редко, не сразу сообразишь, что запускать.

Анонимный комментирует...

а как же замечательная atool? в популярных дистрах присутствует в обязательном порядке, не обнаружил я ее только в arch`е! очень удобная тулза, рекомендую.

Zueuk комментирует...

Хорош скрипт