On 13.10.2013 21:57, Ivan Kovnatsky wrote:
Видел эти функции, не знаю где они изначально появились, когда ковырялся в арче
спер конфиг у какого-то хакера арче, вроде бы codemac, но точно не помню, были
и куски кода phrakture (Aaron Griffin).
Функции крутые, но в свое время отказался от них, чтобы не забывать команд, не
везде есть свой .bashrc/.zshrc под рукой, и потому по памяти можно набирать
unpack/pack, но вывод будет:
--
-bash: unpack: command not found
--
Косяк исправлен в доброске выше. :-)
Кстати pack функция изначально называлась _roll_, только что глянул свой
.bashrc, там так и осталась она.
А вот то, что у меня в .zsh/functions лежит еще:
(кстати синтаксис рабочий только в zsh)
--
unpack()
{
local old_dirs current_dirs lower
lower=${(L)1}
old_dirs=( *(N/) )
if [[ $lower == *.tar.gz || $lower == *.tgz ]]; then
tar xvzf $1
elif [[ $lower == *.gz ]]; then
gunzip $1
elif [[ $lower == *.tar.bz2 || $lower == *.tbz ]]; then
tar xvjf $1
elif [[ $lower == *.bz2 ]]; then
bunzip2 $1
elif [[ $lower == *.zip ]]; then
unzip $1
elif [[ $lower == *.rar ]]; then
unrar e $1
elif [[ $lower == *.tar ]]; then
tar xvf $1
elif [[ $lower == *.lha ]]; then
lha e $1
else
print "Unknown archive type: $1"
return 1
fi
# Change in to the newly created directory, and
# list the directory contents, if there is one.
current_dirs=( *(N/) )
for i in {1..${#current_dirs}}; do
if [[ $current_dirs[$i] != $old_dirs[$i] ]]; then
cd $current_dirs[$i]
break
fi
done
}
это и для баша и для zsh идентично
roll()
{
FILE=$1
case $FILE in
*.tar.bz2) shift && tar cjf $FILE $* ;;
*.tar.gz) shift && tar czf $FILE $* ;;
*.tgz) shift && tar czf $FILE $* ;;
*.zip) shift && zip $FILE $* ;;
*.rar) shift && rar $FILE $* ;;
esac
}
--
-Ivan
Мои лучше. :-) Только LHA ещё надо будет впилить.
--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/525adff3.3060...@yandex.ru