Re: Особенности Zsh
On 13.10.2013 21:21, "Артём Н." wrote:
Функции не проверял: черновой вариант.
В функции накосячил. Зачем скинул не знаю.
Вот исправленный вариант:
#
# Unpack archives. Functions by `muhas` modified by Artiom N..
#
# Распаковка любого архива (http://muhas.ru/?p=55)
unpack()
{
if [ $# -lt 1 ]; then
echo "Usage: unpack <file> [args]" >&2
return 1
fi
a_name="$1"
extract_dir="$( echo $(basename "$a_name") | sed "s/\.${1##*.}//g" )"
shift
if [ -r "$a_name" ] ; then
case "$a_name" in
*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$a_name" $* ;;
*.tar.gz|*.tgz) tar xvzf "$a_name" $* ;;
*.tar.xz) tar --xz -xvf "$a_name" $* ;;
*.tar.zma|*.tlz) tar --lzma -xvf "$a_name" $* ;;
*.bz2) bunzip2 "$a_name" $* ;;
*.rar) unrar x "$a_name" $* ;;
*.gz) gunzip "$a_name" $* ;;
*.tar) tar xvf "$a_name" $* ;;
*.zip) unzip "$a_name" $* ;;
*.Z) uncompress "$a_name" $* ;;
*.7z) 7za x "$a_name" $* ;;
*.rar) unrar x "$a_name" $* ;;
*.xz) unxz "$a_name" $* ;;
*.arj) arj x "$a_name" $* ;;
*.ace) unace x "$a_name" $* ;;
*.lzm|*.lzma) unlzma "$a_name" $* ;;
*.deb)
mkdir -p "$extract_dir/control"
mkdir -p "$extract_dir/data"
cd "$extract_dir"; ar vx "../${1}" > /dev/null
cd control; tar xzvf ../control.tar.gz
cd ../data; tar xzvf ../data.tar.gz
cd ..; rm *.tar.gz debian-binary
cd ..
;;
*.ar) ar x "$a_name" $* ;;
*.cpio,*.rpm) cpio -i $* < "$a_name" ;;
*) echo "Cannot unpack '$a_name' $*..." ;;
esac
else
echo "'$a_name' is not a valid file"
fi
}
# ... и упаковка (http://muhas.ru/?p=55)
pack()
{
if [ $1 ] ; then
case $1 in
tbz) tar cjvf $2.tar.bz2 $2 ;;
tgz) tar czvf $2.tar.gz $2 ;;
tar) tar cpvf $2.tar $2 ;;
bz2) bzip $2 ;;
gz) gzip -c -9 --best -n $2 > $2.gz ;;
zip) zip -r $2.zip $2 ;;
7z) 7z a $2.7z $2 ;;
rar) rar a $2.rar $2 ;;
*) echo "'$1' Cannot be packed via pack()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
alias x=unpack
Распаковка deb взята из oh-my-zsh плагина extract, но мной проверена не была.
Reply to: