Abilitare una conferma quando si eliminano file e cartelle con il comando rm

La maggior parte degli utenti della linea di comando sa che il comando "rm" per rimuovere ed eliminare file è abbastanza potente, in grado di eliminare praticamente qualsiasi file immaginabile all'interno del file system, indipendentemente dal fatto che debba essere rimosso o meno. Una volta aggiunti i caratteri jolly e sudo, rm e srm perché esponenzialmente più potenti e potenzialmente pericolosi, così per gli utenti avanzati che desiderano aggiungere un livello di sicurezza alla funzione rm possono abilitare una finestra di dialogo di conferma con i comandi rm e srm. Questo offre anche un utile meccanismo di protezione per coloro che stanno imparando la riga di comando e vogliono mettere un livello di verifica tra la cancellazione istantanea dei file e la loro esecuzione dei comandi.

Ci sono due parti per questo trucco, il primo è semplicemente conoscere il flag corretto per abilitare e usare una conferma prima che un file o una cartella vengano cancellati con rm, e il secondo usa un alias per rendere la suddetta rimozione con conferma nella nuova opzione predefinita per il comando rm. Entrambi questi trucchi funzionano con Mac OS X, Linux e molte altre varianti UNIX, quindi è in gran parte indipendente dal sistema operativo e funziona anche con il potente comando di rimozione sicura di srm. Questo ovviamente è destinato agli utenti più avanzati che si sentono a loro agio con la riga di comando, poiché l'uso di rm e srm non sono strumenti appropriati per i principianti.

Utilizzo di comando rm con conferma prima di eliminare file e cartelle

La sintassi per abilitare una conferma prima di rimuovere qualsiasi file con rm (o srm) è semplicemente un flag -i, usato in questo modo:

rm -i filename

Ad esempio, se dovessi eliminare un file denominato "theSampleFile.zip" e volessi avere una conferma prima della rimozione del comando, dovresti utilizzare la seguente sintassi:

rm -i theSampleFile.zip

Una volta premuto Invio, ti verrà chiesto se desideri o meno rimuovere il nome del file in questione, con il comando che ripete il file esatto prima che lo cancelli in questo modo:

% rm -i theSampleFile.zip
remove theSampleFile.zip? y

Premendo 'y' e return si risponde con un 'si' per cancellare il file, e premendo 'n' e restituisce la chiave risponde con un no e il file non verrà rimosso.

La sintassi rm -i funziona anche con -r per ottenere una conferma prima di cancellare in modo ricorsivo le directory e il contenuto dei file delle sottocartelle contenute:

rm -ir /Example/Folder/

Anche in questo caso dovrai rilasciare ay o n prima che il comando venga completato per ogni singolo file trovato all'interno della directory.

Anche ottenere la stessa finestra di dialogo di conferma con srm usa il flag -i:

srm -i /Example/file.zip

Ancora una volta, userete i tasti y e n per confermare o negare la rimozione dei file specificati.

Come abilitare una conferma di comando 'rm' per impostazione predefinita con un alias

Apri il tuo .bash_profile o .profile e puoi creare un alias in questo modo per modificare la sintassi predefinita 'rm' in 'rm -i' come nuova impostazione predefinita.

alias rm='rm -i'

Puoi creare lo stesso tipo di alias con srm in questo modo:

alias srm='srm -i'

L'aggiunta di entrambi a righe univoche all'interno del profilo è sufficiente, quindi l'aggiornamento della shell consente di accedere a entrambi da bash, zsh, tcsh o qualsiasi altra shell in uso.

Hai altri suggerimenti avanzati per salvaguardare rm e srm dalla riga di comando prima di rimuovere i file? Fateci sapere nei commenti. E se vuoi solo saperne di più interessanti suggerimenti da riga di comando, sfoglia i nostri post sull'argomento.