Script sencillo que permite comprimir y descomprimir archivos de una forma sencilla sin necesidad de conocer todos los comandos necesarios para realizar esta acción.
 
El comando ./comprimir.sh -h te explica como funciona el script.
Recuerda darle permisos de ejecución
#funciones
function ayuda {
 echo ""
 echo "Programa que comprime el archivo/carpeta que le pases como argumento."
 echo ""
 echo "Usage:"
 echo $'\t'"./comprimir.sh [PARAMS]"
 echo ""
 echo "Options:"
 echo $'\t'"[-h|--help] "$'\t'""$'\t'" Muestra el siguiente mensaje de ayuda."
 echo $'\t'"[-d|--dir directorio] "$'\t'" Directorio que queremos comprimir."
 echo $'\t'"[-c|--compresion tipo] "$'\t'" Tipo de compresión que usaremos."
 echo $'\t'""$'\t'""$'\t'""$'\t'" tar.gz | zip | rar | tar | gz."
 echo $'\t'"[-f|--file archivo] "$'\t'" Archivo que vamos a comprimir."
 echo $'\t'"[-u|--uncompress] "$'\t'" Descomprimir un archivo comprimido."
 echo $'\t'""$'\t'""$'\t'""$'\t'" Debes utilizar la opción -f para elegir el archivo."
 echo ""
}
# Mientras el número de argumentos NO SEA 0
while [ $# -ne 0 ]
do
    case "$1" in
    -h|--help)
        ayuda 
  exit 2
        ;;
 -d|--dir)
        DIRECTORIO=$2 
  shift
        ;;
 -c|--compresion)
        COMPRESION=$2 
  shift
        ;;
 -f|--file)
        ARCHIVO=$2 
  shift
        ;;
 -u|--uncompress)
        DESCOMPRIMIR=1
        ;;
    *)
        echo "comprimir: illegal option -- $1."
  ayuda
        exit 2
        ;;
    esac
    shift
done
#condiciones
if [ -z "$DIRECTORIO" ]
then
 if [ -z "$ARCHIVO" ]
 then
  if [ -z "$DESCOMPRIMIR" ]
  then
   echo "Debes introducir un directorio o un archivo."
   ayuda
   exit 2
  else
   echo "Debes introducir un archivo (-f file)."
   ayuda
   exit 2
  fi
 fi
fi
if [ -z "$COMPRESION" ]
then
 if [ -z "$DESCOMPRIMIR" ]
 then
  echo "Debes introducir el formato de compresion/descompresion que desea utilizar."
  ayuda
  exit 2
 fi
fi
#ejecucion del programa
DIRECTORIO=$(echo $DIRECTORIO | sed -e 's/\/$//') #eliminamos el ultimo caracter si es una /
if [ -z "$DESCOMPRIMIR" ]
then
 if [ ! -z "$DIRECTORIO" ]
 then
  case "$COMPRESION" in
   tar.gz)
    tar cvf $DIRECTORIO.tar.gz $DIRECTORIO/*
    ;;
   zip)
    zip $DIRECTORIO.zip $DIRECTORIO/*
    ;;
   rar)
    rar -a $DIRECTORIO.rar $DIRECTORIO/*
    ;;
   tar)
    tar cvf $DIRECTORIO.tar $DIRECTORIO/*
    ;;
   gz)
    gzip -l -S gz $DIRECTORIO/*
    ;;
   *)
    echo "Esta opción de compresión no es permitida"
    ayuda
    exit 2
    ;;
  esac
 elif [ ! -z "$ARCHIVO" ]
 then
  case "$COMPRESION" in
   tar.gz)
    tar cvf $ARCHIVO.tar.gz $ARCHIVO
    ;;
   zip)
    zip $ARCHIVO.zip $ARCHIVO
    ;;
   rar)
    rar -a $ARCHIVO.rar $ARCHIVO
    ;;
   tar)
    tar cvf $ARCHIVO.tar $ARCHIVO
    ;;
   gz)
    gzip -l -S gz $ARCHIVO
    ;;
   *)
    echo "Esta opción de compresión no es permitida"
    ayuda
    exit 2
    ;;
  esac
 fi
else
 # Comenzamos extrayendo la parte derecha desde el ultimo caracter "/", es decir, el archivo
 NombreArchivo="${ARCHIVO##*/}"
 # Lo siguiente es extraer nombre de archivo
 NombreSolo="${NombreArchivo%.[^.]*}"
 # Extension se obtiene eliminando del nombre completo el nombre mas el punto
 Extension="${NombreArchivo:${#NombreSolo} + 1}"
 echo $Extension
 case "$Extension" in
  tar.gz)
   tar xvf $ARCHIVO
   ;;
  zip)
   unzip $ARCHIVO
   ;;
  rar)
   rar -x $ARCHIVO
   ;;
  tar)
   tar xvf $ARCHIVO
   ;;
  gz)
   gzip -d $ARCHIVO
   ;;
  *)
   echo "Esta opción de compresión no es permitida"
   ayuda
   exit 2
   ;;
 esac
fi