• [^] # Re: Moi j'utilise ce script ...

    Posté par (site web personnel) . En réponse au journal Décompression d'archive intelligente. Évalué à 2.

    #!/bin/bash
    DIRNAME="$(dirname "$@")"
    FILENAME="$(basename "$@")"
    TYPE=`echo $FILENAME | sed 's/tar\.gz$/tgz/g' | sed 's/tar\.bz2$/tbz2/g' | sed 's/.*\.//g'`
    EXTENSION=`echo $FILENAME | sed 's/.*\.//'`
    if [ "$EXTENSION" = "bz2" ] || [ "$EXTENSION" = "gz" ]
    then
    EXTENSION="tar.$EXTENSION"
    fi

    DESTDIR="$(basename "$@" .$EXTENSION)"

    cd "$DIRNAME"
    case "$TYPE" in

    "zip")
    DIRTEST=`unzip -lqq "$FILENAME" | awk '{print 4ドル}' | sed -e 's,\/.*,,' | sort | uniq | wc -l`
    if [ $DIRTEST = "1" ]; then
    unzip "$FILENAME"
    else
    unzip -d "$DESTDIR" "$FILENAME"
    fi
    ;;

    "tar")
    DIRTEST=`tar -tvf "$FILENAME" | awk '{print 6ドル}' | sed -e 's,\/.*,,' | sort | uniq | wc -l`
    if [ $DIRTEST = "1" ]; then
    tar xf "$FILENAME"
    else
    mkdir "$DESTDIR"
    tar xf "$FILENAME" -C "$DESTDIR"
    fi
    ;;

    "tbz2")
    DIRTEST=`tar tvjf "$FILENAME" | awk '{print 6ドル}' | sed -e 's,\/.*,,' | sort | uniq | wc -l`
    if [ $DIRTEST = "1" ]; then
    tar xjf "$FILENAME"
    else
    mkdir "$DESTDIR"
    tar xjf "$FILENAME" -C "$DESTDIR"
    fi
    ;;

    "tgz")
    DIRTEST=`tar tvzf "$FILENAME" | awk '{print 6ドル}' | sed -e 's,\/.*,,' | sort | uniq | wc -l`
    if [ $DIRTEST = "1" ]; then
    tar xzf "$FILENAME"
    else
    mkdir "$DESTDIR"
    tar xzf "$FILENAME" -C "$DESTDIR"
    fi
    ;;

    "xpi")
    mkdir "$DESTDIR"
    unzip -d "$DESTDIR" "$FILENAME"
    ;;

    "rar")
    DIRTEST=`unrar vb "$FILENAME" | sed -e 's,\/.*,,' | sort | uniq | wc -l`
    if [ $DIRTEST = "1" ]; then
    unrar "$FILENAME"
    else
    unrar "$FILENAME" "$DESTDIR"
    fi
    ;;

    *)
    Xdialog --title "Unpack" --msgbox "Extension inconnue" 7 50
    ;;

    esac