Il comando Linux rm: tutto ciò che devi sapere

0
44
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 comando Linux rm elimina file e directory. Per utilizzare questo strumento in modo sicuro, devi essere certo di cosa accadrà quando premi “Invio.” Ecco cosa devi sapere.

Sommario

Che cos'è il comando rm in Linux?
Come eliminare i file con rm
Utilizzare i caratteri jolly con rm
Utilizzare rm in modo interattivo
Utilizzare l'opzione rm Force
Eliminare le directory con rm
Evitare errori durante l'utilizzo rm
Quali DPI?

Che cos'è il comando rm in Linux?

Il comando rm di Linux serve principalmente per eliminare i file. È quello che la maggior parte delle persone incontra subito dopo aver iniziato a utilizzare Linux. Solo in virtù del fatto di essere un nuovo arrivato in Linux, è probabile che tu commetta degli errori. Creerai o copierai i 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 coinvolgono rm .

RELATED8 errori di battitura che devi davvero evitare su Linux

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

Quando un file viene eliminato con rm , non c'è più. 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 ciò che può fare e assicurarti di usarlo correttamente.

Alcuni strumenti sono più pericolosi di altri e molto meno tolleranti per gli errori. Ecco perché non c'è mai stato un film intitolato The Texas Wrench Massacre. rm non è una chiave inglese, è decisamente 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 accordo con rm . Quando tiri fuori rm dalla borsa degli attrezzi, dovresti rallentare e controllare, quindi ricontrollare, la riga di comando.

Il comando rm è un eseguibile, non fa parte del conchiglia. Quindi, anche se qui stiamo usando Bash, è il Linux rm standard, non un Bash rm speciale.

RELAZIONATO: Righe di comando: Perché le persone si preoccupano ancora di loro?

Come eliminare i file con rm

Il modo più semplice per utilizzare rm è fornire il nome di un file che desideri eliminare.

rm config.gc

Torni silenziosamente 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. Fornendo un nome file come questo, rm cerca 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.

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

Anche in questo caso, non viene segnalato nulla se rm riesce a eliminare i file specificati.

RELAZIONATO: 37 importanti comandi di Linux che dovresti conoscere

Usare i caratteri jolly con rm

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

L'asterisco “*” rappresenta qualsiasi sequenza di caratteri, incluso nessuno. Il punto interrogativo “?” rappresenta un 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” sarà abbinato. Quando i file sono stati eliminati, possiamo usare ls per verificare che siano spariti.

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

Sul nostro computer di prova, abbiamo due file nella directory corrente con nomi che iniziano con “config.& #8221;

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 carattere, corrisponde anche a quel nome file.

ls config* rm config* ls config*

< img src="http://www.howtogeek.com/pagespeed_static/1.JiBnMqyl6S.gif" />

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

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

RELAZIONATO: 15 caratteri speciali Cosa devi sapere per Bash

Usare rm in modo interattivo

Un modo sicuro per usare rm è costringerlo a chiedere conferma prima di eliminare ogni file. L'opzione -i (interattivo) ti consente di farlo. Quando aggiungi questa opzione alla tua 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.

rm -i *.?

Ogni file corrispondente viene presentato a turno. Se rispondi “s” 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 conservato. Puoi semplicemente premere “Invio” e il file viene conservato.

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

File dei comandi di Linux tar · pv · cat ·tac · chmod · grep ·  diff · sed · ar ·  man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · unisci · jq · piega · uniq ·journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · stringhe · digita · rinomina · zip · decomprimi · monta ·< /strong> smonta · installa · fdisk ·mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · converti · rclone · distruggi · srm · scp ·< /strong> gzip · chattr · taglia · trova ·umask · wc Processi alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · cronologia · su · batch · gratuito · quale · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall ·· kill · sleep · sudo · su · time · groupadd · usermod · gruppi · lshw · spegnimento · riavvio · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap Networking netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig ·finger · nmap · ftp · curl · wget · who · whoami ·· iptables · ssh-keygen · ufw · arping · firewalld

RELAZIONATO: I migliori laptop Linux per sviluppatori e appassionati

Utilizzo dell'opzione rm Force

Se si tenta di eliminare un file di sola lettura, rm chiede conferma prima di eliminare il file. Questa è una buona rete di sicurezza, ma potrebbe diventare noiosa se hai molti file da eliminare.

rm geonames.sl3

L'opzione -f (forza) indica a rm di non chiedere mai. Stai dicendo “Sì, elimina tutti i file che normalmente mi chiederesti.” Impedisce inoltre a rm di lamentarsi di file inesistenti.

rm -f geonames.sl3

L'opzione -f (forza) è spesso utilizzato quando si elimina un insieme nidificato di file e directory.

Eliminazione di directory con rm

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

RELATEDCome eliminare file e directory nel terminale Linux

L'eliminazione di una directory è simile all'eliminazione di un file. Forniamo il nome della directory sulla riga di comando. Dobbiamo includere l'opzione -d (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à.

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

rm -d archivio rm -r archivio

Il secondo comando riesce.

Per cambiare rm in full- in modalità motosega, possiamo combinare le opzioni -r (ricorsiva) e -f (forza). Questo dice a rm di 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.

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

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

rm -rfv codice-migrato

Nell'output possiamo vedere che i file vengono rimossi e, quando& #8217;sono vuote, anche le directory sono state rimosse.

Evitare errori durante l'utilizzo di rm< /h2>

Gli spazi e altri strani caratteri nei nomi dei file possono presentare problemi. I 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.

Poiché 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 sulla 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.

RELATEDCome gestire gli spazi nei nomi dei file su Linux

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

ls -hl backup da eliminare

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

rm backup per eliminare

rm pensa che funzioni con tre file, &# 8220;backup”, “su” e “elimina.” Si lamenta che non riesce a trovare “to” e “delete”, ma trova ed elimina silenziosamente “backup.”

Citare il nome del file consente a rm di eliminare il file corretto.

rm ' backup da eliminare'

Potresti anche evitare gli spazi con le barre rovesciate ““, in questo modo:

rm backup to delete

Se tu usa il completamento tramite tabulazione per inserire i tuoi nomi di file, verranno automaticamente sottoposti a escape, se necessario.

Quali DPI?

A differenza motoseghe del mondo reale, non ci sono dispositivi di protezione individuale che puoi usare con rm.

Quello che puoi fare è controllare la tua sintassi con ls prima di provarla con rm e utilizzare la modalità interattiva in modo da poter decidere cosa viene eliminato.

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

RELAZIONATO: Elimina file più vecchi di x giorni su Linux< /strong>

LEGGI SUCCESSIVO

  • › Come recuperare file cancellati su Linux con testdisk
  • › Come eliminare file e directory nel terminale Linux
  • › 8 comandi mortali che non dovresti mai eseguire su Linux
  • › Elimina file più vecchi di x giorni su Linux
  • › Come eliminare in modo sicuro i file su Linux
  • › Come rimuovere più sottodirectory con un comando Linux
  • › Come gestire i file dal terminale Linux: 11 comandi che devi conoscere
  • › Come cambiare scheda con una scorciatoia da tastiera in qualsiasi browser Web