back
#estrae ogni tipo di archivio
#es: extract archivio.gz
### extract archives ###
extract() {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar 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' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}

E se dopo tanto lavoro occorre tirare un po' il fiato prima di riposare vanno imposti altri due alias come

#mostra vignette dal sito xkcd
#necessita di display dal pacchetto imagemagick
### xkcd strips ###
xkcd() {
while true;do wget -q http://dynamic.xkcd.com/comic/random -O -|grep -Eo 'http://imgs.xkcd.com/comics/.*(png|jpg)'|wget -q -i - -O -|display -geometry +200+200; done
}
#noia? qualche perla di saggezza a mani libere
alias fortune='while true|echo;do fortune -a;sleep 11;donÈ

Sul finire occorre spendere qualche parola sulla gestione degli alias che abbiamo creato. Per la cancellazione di un alias è sufficiente la sua rimozione dal file .bash_aliases ma non è infrequente l'esigenza di aggirare un alias temporaneamente piuttosto che rimuoverlo del tutto, e questo capita molto spesso quando come alias si è impostato un comando comunque disponibile per il sistema.
Torniamo per un attimo al nostro alias che elimina (rm) un file semplicemente spostandolo (mv) nella directory che abbiamo impostato come cestino

alias rm='mv "$@" --target-directory=$HOME/cestino'

un alias di questo genere rende di fatto non più disponibile il comando rm che sarà sempre sostituito da bash con mv. Ci sono due modi per recuperare momentaneamente l'uso del comando, e quindi il suo comportamento originale, senza rimuovere l'alias impostato su di esso, il primo è quello di specificare il percorso completo del comando, in questo caso

/bin/rm

il secondo è quello di racchiudere il comando tra apici

'rm' (o "rm")
back