fix "extract", handle pax files

This commit is contained in:
David Majnemer 2010-07-01 10:33:34 -07:00
parent e7fd9d9270
commit cbc8441710

View file

@ -51,42 +51,27 @@ extract ()
*.tar) *.tar)
tar xf "${1}" tar xf "${1}"
;; ;;
*.gz|*.z) *.tar.bz2|*.tbz2|*.tbz)
gzip -dc "${1}" > `basename "${1%.*}"` bzip2 -dc "${1}" | tar xf -
;; ;;
*.tar.gz|*.tgz|*.tz) *.tar.gz|*.tgz|*.tz)
gzip -dc "${1}" | tar xf - gzip -dc "${1}" | tar xf -
;; ;;
*.Z) *.tar.lzma|*.tlz)
uncompress -c "${1}" > `basename "${1%.*}"` lzma -dc "${1}" | tar xf -
;;
*.tar.xz|*.txz)
xz -dc "${1}" | tar xf -
;; ;;
*.tar.z|*.tar.Z|*.taz) *.tar.z|*.tar.Z|*.taz)
uncompress -c "${1}" | tar xf - uncompress -c "${1}" | tar xf -
;; ;;
*.bz2|*.bz)
bzip2 -dc "${1}" > `basename "${1%.*}"`
;;
*.tar.bz2|*.tbz2|*.tbz)
bzip2 -dc "${1}" | tar xf -
;;
*.7z)
7zr x "${1}"
;;
*.tar.7z|*.t7z) *.tar.7z|*.t7z)
7zr x -so "${1}" | tar xf - 7zr x -so "${1}" | tar xf -
;; ;;
*.lzma) *.lzma)
lzma -dc "${1}" > `basename "${1%.*}"` lzma -dc "${1}" > `basename "${1%.*}"`
;; ;;
*.tar.lzma|*.tlz)
lzma -dc "${1}" | tar xf -
;;
*.xz)
xz -dc "${1}" > `basename "${1%.*}"`
;;
*.tar.xz|*.txz)
xz -dc "${1}" | tar xf -
;;
*.a|*.deb) *.a|*.deb)
ar x "${1}" ar x "${1}"
;; ;;
@ -105,6 +90,12 @@ extract ()
*.lha|*.lzh) *.lha|*.lzh)
lha xqf "${1}" lha xqf "${1}"
;; ;;
*.pax)
pax -rf "${1}"
;;
*.pax.bz2)
bzip2 -dc "${1}" | pax -rf -
;;
*.rar) *.rar)
unrar x -idq "${1}" unrar x -idq "${1}"
;; ;;
@ -117,6 +108,21 @@ extract ()
*.zoo) *.zoo)
zoo x "${1}" zoo x "${1}"
;; ;;
*.bz2|*.bz)
bzip2 -dc "${1}" > `basename "${1%.*}"`
;;
*.gz|*.z)
gzip -dc "${1}" > `basename "${1%.*}"`
;;
*.xz)
xz -dc "${1}" > `basename "${1%.*}"`
;;
*.Z)
uncompress -c "${1}" > `basename "${1%.*}"`
;;
*.7z)
7zr x "${1}"
;;
*) *)
echo "Unable to extract '"$1"'" echo "Unable to extract '"$1"'"
return 1 return 1