我希望有一个可以提取zip,tar,tar.gz和其他档案的bash函数。
如何做到这一点?
答案 0 :(得分:2)
很久以前我在互联网上找到了一个功能:
extract () {
if [ -f "$1" ] ; then
case $1 in
*.tar.bz2) tar xvjf "$1" ;;
*.tar.gz) tar xvzf "$1" ;;
*.tar.xz) tar xvJf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xvf "$1" ;;
*.tbz2) tar xvjf "$1" ;;
*.tgz) tar xvzf "$1" ;;
*.zip) unzip "$1" ;;
*.jar) unzip "$1" ;;
*.Z) uncompress "$1" ;;
*.7z) 7z x "$1" ;;
*) echo "'$1' cannot be extracted via >extract<" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
(我不确定谁是作者,所以我将这个答案作为社区维基)
答案 1 :(得分:0)
尝试atool
http://www.nongnu.org/atool/ - atool是一个用于管理各种类型的文件存档的脚本(tar,tar + gzip,zip等)。