35 lines
952 B
Bash
Executable File
35 lines
952 B
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ $# -lt 1 ];then
|
|
echo "Usage: `basename $0` FILES"
|
|
exit 1
|
|
fi
|
|
|
|
extract () {
|
|
arg="$1"
|
|
cd "$(dirname "$arg")" || exit
|
|
case "$arg" in
|
|
*.tar.bz2)
|
|
tar xjf "$arg" --one-top-level ;;
|
|
*.tar.gz)
|
|
tar xzf "$arg" --one-top-level ;;
|
|
*.bz2) bunzip2 "$arg" ;;
|
|
*.gz) gunzip "$arg" ;;
|
|
*.tar) tar xf "$arg" --one-top-level ;;
|
|
*.tbz2) tar xjf "$arg" --one-top-level ;;
|
|
*.tgz) tar xzf "$arg" --one-top-level ;;
|
|
*.zip)
|
|
a_dir=`expr "$arg" : '\(.*\).zip'`
|
|
7z x "$arg" -o"$a_dir" ;;
|
|
*.Z) uncompress "$arg" ;;
|
|
*.rar)
|
|
a_dir=`expr "$arg" : '\(.*\).rar'` ;
|
|
mkdir "$a_dir" ;
|
|
7z x "$arg" -o"$a_dir" ;;
|
|
*) echo "'$arg' cannot be extracted via extract()" ;;
|
|
esac
|
|
cd - || exit
|
|
}
|
|
|
|
extract "$1"
|