X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=ex;h=5ca021ec64c3eb9fb3494d7ef9b2015a03e2eeaf;hb=2a2168577b2f877c22724bcc9d02f359813ba72d;hp=dcfb36910dd4c7616c430934bee6015ceefd6a01;hpb=e409ebcdfd1ecc0aeae511d3a62caf6006b2643d;p=small-misc-bash diff --git a/ex b/ex index dcfb369..5ca021e 100755 --- a/ex +++ b/ex @@ -14,12 +14,14 @@ # limitations under the License. ex() { - local help="Usage: ex [--help] FILE ... -Extract each FILE according to its extension." + local help="Usage: ex [--help] FILE... +Extract each FILE according to its extension. +7z bz2 deb gz iso rar rpm tar xz zip & variations. +See source for exact file extensions." if [[ $1 == --help ]]; then echo "$help" fi - local x + local x super for x in "$@"; do case "$x" in *.tar.bz2 | *.tbz2 ) tar xvjf "$x" ;; @@ -34,13 +36,20 @@ Extract each FILE according to its extension." *.rpm ) rpm2cpio "$x" | cpio --extract --make-directories --verbose ;; *.tar.xz ) tar Jxvf "$x" ;; *.iso ) + if [[ $EUID != 0 ]]; then + if [[ $(sudo -v) == Sorry* ]]; then + echo error: need superuser priveledge for iso file + return 1 + fi + super=sudo + fi local temp_dir=$(mktemp -d) losetup -f - s mount -o loop "$x" "$temp_dir" + $super mount -o loop "$x" "$temp_dir" local dir="${x%%.iso}" mkdir "$dir" cp -av "$temp_dir"/* "$dir" - s umount "$temp_dir" + $super umount "$temp_dir" ;; *.r[0-9][0-9]|*.rar ) unrar x "$x" ;; *) echo "I don't kno how to extract $x";;