Se abbiamo usato il terminale almeno una volta nella vita sappiamo, quasi per certo, che il comando usato per cancellare file, cartelle e quant’altro è il comando rm. Ciò che tuttavia passa inosservato, almeno finché non ci si ritrova letteralmente fregati, è che il comando rm elimina i file senza nessuna pietà.
Per impostazione predefinita esso non mostra nessuna richiesta di conferma e, silenziosamente, fa esattamente ciò per cui è stato progettato: eliminare un file. E, ovviamente, farlo senza passare dal cestino.
In realtà in alcuni sistemi operativi rm è impostato in modo da chiedere conferma solo e soltanto se si elimina un file protetto da scrittura; in altri casi, invece, l’eliminazione è istantanea e irreversibile.
Basta un attimo di distrazione, quindi, e si potrebbe cancellare un file per un altro senza volerlo e senza poterlo più recuperare (a meno che non si usino particolari e lunghe procedure di recupero).
In questa guida vedremo come evitare che ciò succeda: grazie ad un alias, andremo a far sì che il comando “rm” mostri un messaggio di conferma, al quale noi dovremo rispondere, ogni volta che eliminiamo un file o una cartella da terminale.
Aggiungere un messaggio di conferma a rm
Eseguiremo questa operazione aiutandoci con gli alias, ovvero con dei comandi personalizzati in grado di richiamare comandi bash o altri programmi.
In pratica, grazie ad un alias faremo si che digitando rm da terminale venga in realtà invocato il comando
rm -i
Grazie al parametro aggiunto, infatti, rm chiederà conferma per l’eliminazione del file prima di procedere. Possiamo vedere la differenza tra i due comandi nell’immagine in basso:
Per applicare questa modifica dovremo andare ad aggiungere l’alias al file ~/.bashrc, quello che definisce le variabili (e gli alias) personalizzati; per farlo, apriamo un terminale e digitiamo
echo alias "rm='rm -i'" >> ~/.bashrc
seguito da Invio e, per rendere effettiva la modifica, digitiamo anche
source ~/.bashrc
seguito da Invio. Ora, per rispondere affermativamente al messaggio di conferma ed eliminare il file, dovremo digitare s o y seguito da invio; per rispondere negativamente ed annullare l’eliminazione dovremo premere invece n seguito da Invio.
Per ripristinare il vecchio comportamento di “rm”, liberandoci dunque del messaggio di notifica, dobbiamo aprire il file .bashrc ed eliminare la riga aggiunta in precedenza.
TIP: per applicare la modifica a livello globale, dunque per tutti gli utenti, potremo aggiungere l’alias al file /etc/bashrc con il comando
sudo -s echo alias "rm='rm -i'" >> /etc/bashrc