iankelling.org
/
git
/
small-misc-bash
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
better deb extraction
[small-misc-bash]
/
ex
diff --git
a/ex
b/ex
index ff8edb77ce5e7f01441166f1209b4b00642ad6b5..cf04ee6f2f26e93d3ac5ec30b5030a39e7b55611 100755
(executable)
--- a/
ex
+++ b/
ex
@@
-28,9
+28,26
@@
Note: dtrx (package & command) extracts most of these plus some others."
local x super
for x in "$@"; do
case "$x" in
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" ;;
+ *.tar.xz ) tar Jxf "$x" ;;
+ *.xz) xz -d "$x" ;;
*.7z ) 7za x "$x" ;;
*.bz2 ) bunzip2 "$x" ;;
*.7z ) 7za x "$x" ;;
*.bz2 ) bunzip2 "$x" ;;
- *.deb ) ar x "$x" ;;
+ *.deb )
+ ar x "$x"
+ tmp=(data.tar.*)
+ case $tmp in
+ *.xz) tar xJf data.tar.xz ;;
+ *.gz) tar xzf data.tar.gz ;;
+ *) echo "error: could not find data.tar.*" >&2; exit 1 ;;
+ esac
+ tar xzf control.tar.gz
+ rm -f control.tar.gz
+ rm -f data.tar.*
+ ;;
*.dsc) dpkg-source -x "$x" ;;
*.gz ) gunzip "$x" ;;
*.iso )
*.dsc) dpkg-source -x "$x" ;;
*.gz ) gunzip "$x" ;;
*.iso )
@@
-50,11
+67,6
@@
Note: dtrx (package & command) extracts most of these plus some others."
*.r[0-9][0-9]|*.rar ) unrar x "$x" ;;
*.rpm ) rpm2cpio "$x" | cpio --extract --make-directories ;;
*.sfs) $super unsquashfs "$x" ;;
*.r[0-9][0-9]|*.rar ) unrar x "$x" ;;
*.rpm ) rpm2cpio "$x" | cpio --extract --make-directories ;;
*.sfs) $super unsquashfs "$x" ;;
- *.tar ) tar xf "$x" ;;
- *.tar.bz2 | *.tbz2 ) tar xjf "$x" ;;
- *.tar.gz | *.tgz ) tar xzf "$x" ;;
- *.tar.xz ) tar Jxf "$x" ;;
- *.xz) xz -d "$x" ;;
*.Z ) uncompress "$x" ;;
*.zip|*.xpi ) unzip "$x" ;;
*.Z ) uncompress "$x" ;;
*.zip|*.xpi ) unzip "$x" ;;