mirror of
https://github.com/sbrl/bin.git
synced 2018-01-10 21:33:46 +00:00
33 lines
1.1 KiB
Text
33 lines
1.1 KiB
Text
|
#!/bin/bash
|
||
|
|
||
|
if [ $# -lt 1 ];then
|
||
|
echo "Usage: `basename $0` FILES"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# I found the following function at http://unix.stackexchange.com/a/168/37944
|
||
|
# which I improved it a little. Many thanks to sydo for this idea.
|
||
|
extract () {
|
||
|
for arg in $@ ; do
|
||
|
if [ -f $arg ] ; then
|
||
|
case $arg in
|
||
|
*.tar.bz2) tar xjf $arg ;;
|
||
|
*.tar.gz) tar xzf $arg ;;
|
||
|
*.bz2) bunzip2 $arg ;;
|
||
|
*.gz) gunzip $arg ;;
|
||
|
*.tar) tar xf $arg ;;
|
||
|
*.tbz2) tar xjf $arg ;;
|
||
|
*.tgz) tar xzf $arg ;;
|
||
|
*.zip) unzip $arg ;;
|
||
|
*.Z) uncompress $arg ;;
|
||
|
*.rar) rar x $arg ;; # 'rar' must to be installed
|
||
|
*.jar) jar -xvf $arg ;; # 'jdk' must to be installed
|
||
|
*) echo "'$arg' cannot be extracted via extract()" ;;
|
||
|
esac
|
||
|
else
|
||
|
echo "'$arg' is not a valid file"
|
||
|
fi
|
||
|
done
|
||
|
}
|
||
|
|
||
|
extract $@
|