Come eliminare una directory non vuota nel Terminale?


630

Come cancello la seguente directory?

Ho scritto:

rmdir lampp

Questo errore si presenta:

rmdir: failed to remove `lampp': Directory not empty

Esiste un comando per eliminare tutti i file nella directory ed eliminare la cartella della directory?


1
Non riesco a rimuovere una directory come "Nuova cartella" usando tutti i comandi dettagliati sopra. Ha una doppia espressione. Ma voglio rimuovere quella directory. Eventuali suggerimenti saranno i benvenuti. T.Divakara, Bangalore, India

È lo spazio vuoto nel nome del file, prova a usare 'virgolette'> rmdir 'Nuova cartella' <quindi la cartella si disarma o usa i caratteri di escape per i caratteri non vivibili.
Ken Mollerup,

2
Basta fare rm -r lampplo farà.
John Strood,

Risposte:


877

Utilizzare il comando seguente:

rm -rf lampp

Elimina tutti i file e le cartelle contenuti nella lamppdirectory.

Nel caso in cui l'utente non disponga dell'autorizzazione per eliminare la cartella:

Aggiungi sudoall'inizio del comando:

sudo rm -rf folderName

Altrimenti, senza di sudote verrà restituita l'autorizzazione negata. Ed è una buona pratica provare a non usare -fdurante l'eliminazione di una directory:

sudo rm -r folderName

Nota: questo presuppone che tu sia già allo stesso livello della cartella che desideri eliminare nel terminale, in caso contrario:

sudo rm -r /path/to/folderName

FYI: è possibile utilizzare le lettere -f, -r, -v:

  • -f = per ignorare i file inesistenti, non richiedere mai
  • -r = per rimuovere ricorsivamente le directory e i loro contenuti
  • -v = per spiegare cosa si sta facendo

69
Secondo la mia modesta opinione, è una buona pratica non aggiungere mai la "f" al primo tentativo. Il suo scopo è quello di ignorare alcuni messaggi di avviso che possono essere importanti, specialmente se l'hai fatto accidentalmente sulla / dalla directory sbagliata. Secondo me è bene provare prima senza la "f", quindi solo se stai incontrando molti messaggi di avviso e sei sicuro che va bene ignorarli tutti, Ctrl + C fuori di esso e ripetere il comando con il " f".
thomasrutter,


@thomasrutter ... Accetto. Proprietario di un file "xxx": root e gruppo: root può essere cancellato con l' opzione -f ; e senza sudo . Questo è il messaggio senza -f : " rm: rimuove il file regolare protetto da scrittura '/home/william/.cache/netbeans/v08.01/tmp/xxx'? _". _Pagare delicatamente.
sarà il

95
rm -R lampp

Tuttavia, devi stare attento con un comando ricorsivo come questo, poiché è facile eliminare accidentalmente molto più di quanto previsto.

È consigliabile ricontrollare sempre in quale directory ci si trova e se è stato digitato correttamente il comando, prima di premere Invio.

Versione più sicura

rm -R -i lampp

L'aggiunta lo -irende un po 'più sicuro, perché ti chiederà ogni eliminazione. Tuttavia, se si eliminano molti file, questo non sarà molto pratico. Tuttavia, puoi provarlo prima.

Nota -f sull'opzione:

Molte persone suggeriscono di usarlo -f(combinandolo in -Rfo -rf), sostenendo che si sbarazza di fastidiosi suggerimenti. Tuttavia, nei casi normali non è necessario, e utilizzando sopprime alcuni problemi che probabilmente non vogliono conoscere. Quando lo usi, non verrai avvisato se i tuoi argomenti forniscono una directory o file inesistenti: rm non riuscirà a eliminare nulla in silenzio. Come regola generale, prova prima senza -f: se ci sono problemi con i tuoi argomenti, allora noterai. Se inizi a ricevere troppe istruzioni sui file senza accesso in scrittura, puoi provarlo con-f. In alternativa, esegui il comando da un utente (o dal superutente che utilizza sudo) che disponga di autorizzazioni complete per i file e le directory che stai eliminando per impedire in primo luogo questi messaggi.


4
Nota: è -rpossibile utilizzare anche lettere minuscole e qui ha lo stesso effetto. Tendo a usare solo lettere maiuscole -Rperché è coerente con altri comandi che uso come grepe chmod, alcuni dei quali supportano solo la forma maiuscola.
thomasrutter,

Questo ha funzionato per me usando adb (android debug bridge) su Android. Stavo provando rm -rf ma non ha funzionato. Ho dovuto usare rm -R. Grazie.
Raddevus,

Questa è una buona soluzione, soprattutto se inesperta nell'uso del terminale Bash. Il comando può essere abbreviato in rm -ir FOLDER.
AlainD

24

Esistono molti modi per eliminare una directory tramite la modalità CLI. Dipende da come ti senti a tuo agio.

rm -rvf /path/to/directory  
  • -r = rimuove ricorsivamente le directory e i loro contenuti
  • -v = spiega cosa si sta facendo
  • -f = ignora i file inesistenti, non richiedere mai

Se sei nuovo in Linux, usa le pagine man dei comandi ( man rm) per maggiori opzioni e maggiore precisione.


-2

Ho avuto qualche problema con quello oggi, ma l'ho superato con sudo.

Avvertenza: assicurati di voler eliminare l'intera cosa prima di utilizzare il comando seguente.

$ sudo rm -R [Directory name]

L'ho fatto con successo oggi e ho rimosso molte directory non vuote che ho confermato che non volevo / non avevo bisogno.

Sto usando 14.04 LTS


4
"SUDO" non è un comando - "sudo" lo è. Tuttavia, non usi sudo per cancellare una directory non vuota, la usi per cancellare un file che non è di tua proprietà. Farlo ovviamente è pericoloso e non molto intelligente, poiché non dovresti eliminare alla cieca file che non possiedi.
Marty Fried,

-3

A proposito, volevo personalmente eliminare una directory contenente un / i file protetto da scrittura (.git e sottodirectory) e alla fine ho capito che dovevo anche diventare un super utente per eliminare con successo questi file. Ecco cosa ho fatto:

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/

4
Non penso che tu abbia bisogno sudo suqui. Basta prefissare il rmcomando con sudo. Per motivi di sicurezza è una buona pratica (secondo i sostenitori di sudo) non rimanere nel prompt di root quando non è necessario.
thomasrutter,

2
Inoltre, sii molto, molto sicuro, in quale directory ti trovi sudo rm -r.
Tony Martin,

È possibile eseguire il comando root-relative ( /directory_name) in modo che non ci siano dubbi su quale directory si sta eliminando.
Yaakov Ainspan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.