Extract many types of files
Based on their extensions,
-7z bz2 deb gz iso dsc rar rpm tar xz zip sfs & some combinations.
+7z [tar.]bz2 deb [tar.]gz iso dsc rar rpm sfs tar xpi [tar.]xz zip Z.
See source for exact file extensions.
-Note: apt-get install dtrx will do the same for
-most of these types, plus some more, I'm going
-to try it out sometime."
+Note: dtrx (package & command) extracts most of these plus some others."
if [[ $1 == --help ]]; then
echo "$help"
local x super
for x in "$@"; do
case "$x" in
+ # tars first, so they are higher pri than non-tar extensions
+ *.tar ) tar xf "$x" ;;
*.tar.bz2 | *.tbz2 ) tar xjf "$x" ;;
*.tar.gz | *.tgz ) tar xzf "$x" ;;
- *.bz2 ) bunzip2 "$x" ;;
- *.gz ) gunzip "$x" ;;
- *.tar ) tar xf "$x" ;;
- *.zip ) unzip "$x" ;;
- *.Z ) uncompress "$x" ;;
- *.7z ) 7za x "$x" ;;
- *.deb ) ar x "$x" ;;
- *.rpm ) rpm2cpio "$x" | cpio --extract --make-directories ;;
*.tar.xz ) tar Jxf "$x" ;;
*.xz) xz -d "$x" ;;
+ *.7z ) 7za x "$x" ;;
+ *.bz2 ) bunzip2 "$x" ;;
+ *.deb ) ar x "$x" ;;
+ *.dsc) dpkg-source -x "$x" ;;
+ *.gz ) gunzip "$x" ;;
*.iso )
local super
if [[ $EUID != 0 ]]; then
cp -a "$temp_dir"/* "$dir"
$super umount "$temp_dir"
;;
+ *.jar) jar xf "$x" ;;
*.r[0-9][0-9]|*.rar ) unrar x "$x" ;;
- *.dsc) dpkg-source -x "$x" ;;
+ *.rpm ) rpm2cpio "$x" | cpio --extract --make-directories ;;
*.sfs) $super unsquashfs "$x" ;;
+ *.Z ) uncompress "$x" ;;
+ *.zip|*.xpi ) unzip "$x" ;;
+
*) echo "I don't know how to extract $x";;
esac
done