Entra in contatto con noi

Affari e Tecnologia

Il comando Linux rm: tutto ciò che devi sapere

Pubblicato

il

fatmawati achmad zaenuri/Shutterstock.com Il comando rm consente di eliminare un file o una directory passandone il nome: “rm filename” o “rm -d directory”. Puoi anche includere un percorso di directory. Se sono presenti file nella directory, utilizzare l’opzione -r “rm -r directory” per eliminare file e cartelle in modo ricorsivo.

Il Linux rm comando cancella file e directory. Per utilizzare questo strumento in modo sicuro, devi essere certo di cosa accadrà quando premi “Invio”. Ecco cosa devi sapere.

Delos Gioielli
Delos Gioielli

Qual è il comando rm in Linux? Il Linux rm comando è principalmente per l’eliminazione dei file. È uno che la maggior parte delle persone incontra subito dopo aver iniziato a utilizzare Linux. Solo in virtù di essere un nuovo arrivato su Linux, è probabile che tu commetta degli errori. Creerai o copierai file per sbaglio, o con il nome sbagliato, o nel posto sbagliato. Fa tutto parte della curva di apprendimento della riga di comando. Le operazioni di pulizia per tali errori comportano rm .

Il rm Il comando può eliminare file, gruppi di file, directory o alberi di directory completi. Ecco perché deve essere usato con cautela. Usando rm non è difficile, ma la penalità per il fallimento è alta.

Quando un file viene eliminato con rm , è andato. Non viene spostato nel cestino. Viene cancellato immediatamente. Ciò non significa che dovresti evitare di usare rm . Ma per usarlo in sicurezza, devi essere consapevole di cosa può fare e assicurarti di usarlo correttamente.

Advertisement

Alcuni strumenti sono più pericolosi di altri e molto meno indulgenti verso gli errori. Ecco perché non c’è mai stato un film intitolato Il massacro della chiave inglese del Texas. rm non è una chiave inglese, è sicuramente una motosega.

Le persone usano le motoseghe tutto il giorno tutti i giorni e finché ne usano una in modo responsabile e consapevole, stanno bene. È lo stesso affare con rm . Quando tiri rm dalla tua borsa degli attrezzi, dovresti rallentare e controllare, quindi ricontrollare, la tua riga di comando.

Il rm command è un eseguibile, non fa parte della shell. Quindi, anche se stiamo usando Bash qui, è il Linux standard rmnon un Bash speciale rm.

IMPARENTATO: Righe di comando: perché le persone si preoccupano ancora di loro?

Advertisement

Come eliminare i file con rm Il modo più semplice da usare rm è fornire il nome di un file che si desidera eliminare.

rm config.gc

Sei silenziosamente tornato alla riga di comando. rm adotta la classica posizione di Linux a bocca chiusa che se non si lamenta di nulla, puoi presumere che abbia fatto quello che hai chiesto. Fornire un nome file come questo causa rm per cercare il file nella directory di lavoro corrente.

È possibile fornire più nomi di file sulla riga di comando. Puoi anche fornire un percorso di directory se un file che desideri eliminare non si trova nella directory corrente.

Advertisement

rm memlog.sh /home/dave/dev-archive/config.gc

Ancora una volta, non viene riportato nulla se rm riesce a eliminare i file specificati.

IMPARENTATO: 37 Importanti comandi di Linux che dovresti conoscere

Utilizzo di caratteri jolly con rm I caratteri jolly consentono di specificare gruppi o raccolte di file senza dover elencare i singoli file nella riga di comando.

Advertisement

L’asterisco “*” rappresenta qualsiasi sequenza di caratteri, incluso nessuno. Il punto interrogativo”?” rappresenta ogni singolo carattere.

Per verificare che i tuoi caratteri jolly corrispondano a ciò che ti aspetti, e niente di più, puoi usarli con ls prima di usarli con rm.

Per eliminare tutti i file PNG nella directory corrente, utilizzare “*.png”. Ciò significa che qualsiasi sequenza di caratteri seguita da “.png” verrà abbinata. Quando i file sono stati cancellati, possiamo usare ls per verificare che se ne siano andati.

ls *.png rm *.png ls *.png

Advertisement

Sul nostro computer di prova, abbiamo due file nella directory corrente con nomi che iniziano con “config”.

Siamo in grado di eliminare entrambi utilizzando il carattere jolly asterisco. Corrisponde a entrambi i file perché rm cerca nomi di file che iniziano con “config”, seguito da qualsiasi sequenza di caratteri. Su un file, quella sequenza di caratteri è “.sl3”, l’estensione del nome file. L’altro nome file non ha caratteri dopo “config”, ma poiché l’asterisco corrisponde a qualsiasi carattere o nessun personaggiocorrisponde anche a quel nome file.

ls config* rm config* ls config*

Puoi usare il punto interrogativo in coppia. Questo eliminerà i file che hanno estensioni di file di due caratteri esattamente.

Advertisement

ls *.?? rm *.?? ls *.??

IMPARENTATO: 15 caratteri speciali che devi conoscere per Bash

Utilizzo interattivo di rm Un modo sicuro da usare rm è costringerlo a chiedere conferma prima di eliminare ogni file. Il -i L’opzione (interattiva) ti consente di farlo. Quando aggiungi questa opzione alla riga di comando, rm ti chiederà prima di ogni eliminazione, dandoti la possibilità di scavalcare azioni che non avevi previsto.

Useremo il -i opzione (interattiva) in questo comando. Cerca di eliminare tutti i file con un’estensione di file a carattere singolo.

Advertisement

rm -i *.?

Ogni file corrispondente viene presentato a turno. Se rispondi “y” o “Y” il file viene eliminato. Se rispondi “n”, il file viene conservato. Infatti, se rispondi con qualcosa di diverso da “y” o “y”, il file viene trattenuto. Puoi semplicemente premere “Invio” e il file viene conservato.

Puoi esaminare rapidamente l’elenco di file, eliminando o saltando i file per selezionare quelli che desideri rimuovere. Come vedremo puoi usare il i- opzione (interattiva) con altro rm opzioni.

Usando l’opzione rm Force Se provi a eliminare un file di sola lettura, rm richiede una conferma prima di eliminare il file. Questa è una buona rete di sicurezza, ma che potrebbe diventare noiosa se hai molti file da eliminare.

Advertisement

rm geonames.sl3

Il -f (forza) l’opzione istruisce rm non chiedere mai. Gli stai dicendo “Sì, elimina tutti i file che normalmente mi chiederesti”. Previene anche rm dal lamentarsi di file inesistenti.

rm -f geonames.sl3

Il -f L’opzione (force) viene spesso utilizzata quando si elimina un insieme nidificato di file e directory.

Advertisement

Eliminazione di elenchi con rm Il rm Il comando può facoltativamente rimuovere anche le directory, insieme ai file che contengono. Questo è simile al rmdir comando, ma rmdir non può eliminare le directory con i file al loro interno. Elimina solo le directory vuote. Il rm Il comando può eliminare facilmente le directory che contengono file e altre directory.

L’eliminazione di una directory è simile all’eliminazione di un file. Forniamo il nome della directory sulla riga di comando. Dobbiamo includere il -d opzione (directory). Come abbiamo fatto quando stavamo cancellando i file, possiamo fornire il nome di diverse directory. Possiamo fornire un percorso alla directory che non si trova nella directory di lavoro corrente.

rm -d old-projects

Se la directory contiene file, questo fallirà.

Advertisement

Per eliminare una directory e il suo contenuto, utilizzare il -r bandiera (ricorsiva). Questo elimina la directory, i suoi file e tutte le directory nidificate che contiene.

rm -d archive rm -r archive

Il secondo comando riesce.

Per cambiare rm in modalità motosega completa, possiamo combinare il -r (ricorsiva) e -f (forzare) le opzioni. Questo racconta rm per eliminare in modo ricorsivo tutti i file e le directory in un albero di directory, anche se sono di sola lettura e senza mai chiedercelo.

Advertisement

Sul nostro computer di prova, abbiamo una directory chiamata “codice migrato”. Contiene file e un’altra directory chiamata “6502”. La directory “6502” contiene anche i file e un’altra directory denominata “ASM”. Ci sono anche dei file in quella directory. Alcuni dei file sono di sola lettura.

Includeremo anche il -v (prolisso) comando in modo che rm ci dice cosa sta facendo.

rm -rfv migrated-code

Nell’output possiamo vedere che i file vengono rimossi e, quando sono vuoti, vengono rimosse anche le directory.

Advertisement

Evitare errori durante l’utilizzo di rm Gli spazi e altri caratteri strani nei nomi dei file possono presentare problemi. Nomi di file che iniziano con un trattino “-” ad esempio, può essere scambiato per le opzioni della riga di comando. Se abbiamo un file chiamato “-contributors.txt”, rm tenterà di elaborare il nome come una sequenza di opzioni della riga di comando.

Perché rm non ha un’opzione chiamata “-c“, l’analisi della riga di comando non riesce e il file non viene eliminato. Per eliminare il file è necessario farlo precedere da “./” per fornire un percorso ad esso.

rm -contributors.txt rm ./-contributors.txt

Anche gli spazi nei nomi dei file sono problematici. Citare l’intero nome del file o utilizzare il completamento con tabulazione per inserire il nome del file nella riga di comando per te, eseguendo l’escape degli spazi mentre lo fa. Se non utilizzi nessuna di queste opzioni, rm tratterà ogni parte del nome del file come un singolo file.

Advertisement

Qui abbiamo due file, uno chiamato “backup” e uno chiamato “backup da eliminare”. Possiamo dimostrare il problema con questi nomi di file, utilizzando ls. Se proviamo ad usare ls sul file “backup da eliminare” e non eseguiamo l’escape o citiamo il nome del file, il comando fallisce.

ls -hl backup to delete

ls si lamenta che non riesce a trovare i file chiamati “a” o “delete”, ma trova un file chiamato “backup”. Questo è quello che rm andrà bene anche. Si lamenterà di due file mancanti e quindi eliminerà il file chiamato “backup”, che non è quello che volevamo.

rm backup to delete

Advertisement

rm pensa che funzioni con tre file, “backup”, “to” e “delete”. Si lamenta di non riuscire a trovare “to” e “delete”, ma trova ed elimina silenziosamente “backup”.

La citazione del nome del file consente rm per eliminare il file corretto.

rm ‘backup to delete’

Potresti anche sfuggire agli spazi con le barre rovesciate “”, come questo:

Advertisement

rm backup to delete

Se tu utilizzare il completamento della scheda per inserire i tuoi nomi di file, verranno automaticamente sottoposti a escape, se necessario.

Quali DPI? A differenza delle motoseghe del mondo reale, non ci sono dispositivi di protezione individuale con cui puoi usare rm.

Quello che puoi fare è controlla la tua sintassi insieme a ls prima di provarlo con rme usa la modalità interattiva in modo che tu possa decidere cosa eliminare.

Advertisement

Oltre a questo, è pratica finché non ti senti a tuo agio e sicuro di te. Il modo più sicuro per farlo è copiare un mucchio di file sacrificali in una directory e fare pratica su quelli.

IMPARENTATO: Elimina i file più vecchi di x giorni su Linux

Advertisement

Trending