[#] Wypakuj pliki z dowolnego archiwum (.bashrc)

( Ostatnio zmieniony pt., 18/07/2008 - 23:37 )
 

Dodaj poniższy wpis do pliku ~/.bashrc

# Wypakuj pliki z dowolnego archiwum
# Wykonaj: ex <nazwa_archiwum>

function ex () {
  if [ -f "$1" ] ; then
     case "$1" in
        *.tar.bz2) tar xjf $1 ;;
        *.tar.gz) tar xzf $1 ;;
        *.bz2) bunzip2 $1 ;;
        *.rar) rar x $1 ;;
        *.gz) gunzip $1 ;;
        *.tar) tar xf $1 ;;
        *.tbz2) tar xjf $1 ;;
        *.tgz) tar xzf $1 ;;
        *.zip) unzip $1 ;;
        *.Z) uncompress $1 ;;
        *.7z) 7z x $1 ;;
        *) echo "'$1' nie może zostać rozpakowany przez [ex]" ;;
      esac
  else
      echo "'$1' nie jest poprawnym plikiem"
  fi
}

INNA WERSJA – skrypt

#!/bin/bash

# decompress - will decompress a file, regardless of compression type.

Z="compress -d"
gz="gunzip"
bz="bunzip2"
zip="unzip -qo"
rar="unrar x -id -y"
tar="tar xf"

if [ $# -eq 0 ]; then
  echo "Usage: decompress file or files to decompress">&2
  exit 1
fi

for name
do
  if [ ! -f "$name" ] ; then
  echo "$0: file $name not found. Skipped." >&2
  continue
  fi

  if [ "$(echo $name | egrep '(\.Z$|\.gz$|\.bz2$|\.zip$|\.rar$|\.tar$|\.tgz$)')" = "" ] ; then
  echo "Skipped file ${name}: it's already decompressed."
      continue
  fi

  extension=${name##*.}

  case "$extension" in
  Z ) echo "Filetype is Z. Decompressing..."
    $Z "$name"
    ;;
  gz ) echo "Filetype is gz. Decompressing..."
     $gz "$name"
     ;;
  bz2 ) echo "Filetype is bz2. Decompressing..."
      $bz "$name"
     ;;
  zip ) echo "Filetype is zip. Decompressing..."
      $zip "$name"
      ;;
  rar ) echo "Filetype is rar. Decompressing..."
      $rar "$name"
      ;;
  tar ) echo "Filetype is tar. Decompressing..."
      $tar "$name"
      ;;
  tgz ) echo "Filetype is tgz. Decompressing..."
      $tar "$name"
  esac

done

exit 0
5
Twoja ocena: Brak Średnio: 5 (2 głosy)