Comando Rm su Linux
MODIFICATO dal commento di @doitmyway: assicurati che corrisponda al nome e quindi elimina, non viceversa (elimina, quindi abbina). In caso contrario, tutti i file verranno eliminati, indipendentemente dal fatto che corrispondano o meno. Cioè, NON farlo: trova / -delete -name .DS_Store.
Ciò significa che troverà tutti i file denominati “.file-to-delete”. Tuttavia, questa ricerca potrebbe restituire alcuni falsi positivi indesiderati. Quando fai qualcosa con sudo devi stare un po’ più attento. Il vantaggio di usare -exec rm {} è che puoi passare argomenti a rm in questo modo:
In questo esempio voglio eliminare i file di backup che fa emacs. Tuttavia quel segno di spunta potrebbe essere in qualche file oscuro che non conosco e potrebbe essere importante. Voglio anche confermare l’eliminazione. Quindi ho messo l’opzione ‘-i’ nel comando rm. Questo mi darà una cancellazione interattiva.
In breve, l’opzione -exec ti dà un po’ più di controllo sul comando effettivo che rimuove l’elemento trovato. Il vantaggio è che usi uno strumento per trovare i file e un altro per eliminarli. Inoltre, non tutte le versioni dell’utilità di ricerca dispongono dell’opzione -delete. Quindi è meglio usare ogni strumento per il proprio lavoro. Questa è la filosofia di Unix: uno strumento, un lavoro, usali insieme per fare ciò di cui hai bisogno.
Elimina la directory cmd
Se quanto sopra non fa per te, ho usato strumenti come photorec per recuperare i file in passato, ma è orientato solo per i file di immagine. Ho scritto ampiamente su questo metodo sul mio blog in questo articolo intitolato:
Per recuperare i file, esegui testdisk / dev / sdX e seleziona il tipo di tabella delle partizioni. Successivamente, seleziona [Avanzate] Filesystem Utils, quindi scegli la tua partizione e seleziona [Undelete]. Ora puoi trovare e selezionare i file eliminati e copiarli in un’altra posizione nel tuo file system.
Quando i file vengono eliminati, non vengono effettivamente eliminati. Quello che succede è che lo spazio in cui si trovavano sul disco rigido viene in qualche modo ripristinato, in modo che se il computer tenta di scrivere dati lì, non si lamenta. In genere, i dati sul disco rigido che pensavi di aver cancellato possono essere lì quasi un anno dopo. O almeno, questa è la mia esperienza su una macchina Windows. Non sono sicuro che funzioni o meno allo stesso modo da una riga di comando su Linux, ma probabilmente avresti bisogno di un Live CD separato per aprire la partizione in quel modo, e non c’è alcuna garanzia che i file siano ancora lì. L’ho fatto su Windows XP più volte utilizzando Zero Assumption Recovery. Sono sicuro che esiste uno strumento simile là fuori se cerchi abbastanza.
Elimina la directory di Linux
Come posso rimuovere in sicurezza tutti i file con un’estensione specifica (ad esempio .bak) dalla directory corrente e da tutte le sottocartelle utilizzando una riga di comando? Ho solo paura di usare rm perché l’ho usato male una volta e ora ho bisogno di un consiglio.
Per prima cosa esegui il comando shopt -s globstar. Puoi eseguirlo sulla riga di comando e avrà effetto solo in quella finestra della shell. Puoi metterlo nel tuo .bashrc, e poi tutte le shell appena avviate lo prenderanno. L’effetto di quel comando è di fare in modo che ** / corrisponda ai file nella directory corrente e nelle sue sottodirectory in modo ricorsivo (per impostazione predefinita, ** / significa lo stesso di * /: solo nelle sottodirectory immediate). Quindi:
Come chiarisce Eliah Kagan in ampi commenti, puoi anche farlo ricorsivamente usando find. In tal caso non puoi usare un alias, quindi i comandi seguenti presumono che tu abbia installato trash-cli. Riassumo i commenti di Eliah:
-xtype f seleziona file e collegamenti simbolici ai file, ma non alle cartelle. Per eliminare anche le cartelle .bak, elimina quella parte e usa -execdir, che impedisce al Cestino di commettere errori inesistenti per i file .bak all’interno delle directory .bak:
Elimina il normale file protetto da scrittura
rmdir: / tmp / docs: Directory non vuota Per rimuovere la directory, che contiene file, è necessario utilizzare il comando rm: $ rm -rf / tmp / docs Elimina più directory utilizzando i caratteri jolly Tutti i comandi della console in Linux possono elaborare file e cartelle utilizzando i caratteri jolly (*) nel nome del file o della cartella. Eliminiamo la seguente struttura di cartelle: $ tree / tmp / docs
0 directory, 0 file Comando “rm” Utilizzo del comando “rm” per rimuovere file e directory Il comando rm è un comando generico che può rimuovere non solo directory ma anche file. Ma il comportamento predefinito del comando “rm” non ti consente di eliminare alcuna cartella. È possibile utilizzare gli argomenti -r o -R per eliminare le directory, incluse le sottodirectory. Immaginiamo di avere la seguente struttura del filesystem: $ tree / tmp / docs
3 directory, 3 file Se si desidera rimuovere completamente la directory / tmp / docs, utilizzare il seguente comando: $ rm -rf / tmp / docs Dove: / bin / rm: elenco di argomenti troppo lungo È possibile che venga visualizzato questo messaggio di errore durante il tentativo per eliminare una directory con molti file. Questo errore si verifica perché il numero di file forniti al comando rm è maggiore del limite di sistema per la dimensione degli argomenti della riga di comando. Il modo più semplice per eliminare tale cartella è utilizzare il comando find per eliminare prima tutti i file, quindi eliminare la directory stessa: $ find / tmp / docs -type f -delete
Imparentato