Domanda Come eliminare una directory non vuota nel terminale?


Come posso eliminare la seguente directory?

Ho digitato:

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 di directory?


539
2017-11-16 04:37


origine


Non riesco a rimuovere una directory come "Nuova cartella" utilizzando tutti i comandi sopra descritti. È una doppia parola. Ma voglio rimuovere quella directory. Eventuali suggerimenti saranno accolti T.Divakara, Bengaluru, India
È lo spazio vuoto nel nome del file, prova a usare 'virgolette'> rmdir 'Nuova cartella' <poi la cartella si disattiva, o usa caratteri di escape per caratteri non-vissibili. - Ken Mollerup
Sto solo facendo rm -r lampp andrà bene. - John Strood


risposte:


Usa il comando seguente:

rm -rf lampp

Elimina tutti i file e le cartelle contenuti nel lampp directory.

Nel caso in cui l'utente non abbia il permesso di cancellare la cartella:

Inserisci sudo all'inizio del comando:

sudo rm -rf folderName

Altrimenti, senza sudo ti verrà restituito il permesso negato. Ed è una buona pratica cercare di non usare -f durante l'eliminazione di una directory:

sudo rm -r folderName

Nota: si presume che tu sia già allo stesso livello della cartella che vuoi eliminare nel terminale, in caso contrario:

sudo rm -r /path/to/folderName

Cordiali saluti: puoi usare le lettere -f, -r, -v:

  • -f = per ignorare i file inesistenti, non richiedere mai
  • -r = per rimuovere le directory e il loro contenuto in modo ricorsivo
  • -v = per spiegare cosa si sta facendo

755
2017-11-16 05:19



A mio modesto parere, è una buona pratica non aggiungere mai la "f" al primo tentativo. Il suo scopo è quello di ignorare determinate avvertenze che potrebbero essere importanti, specialmente se l'hai fatto accidentalmente su / dalla directory sbagliata. Secondo me è bene provare prima senza "f", quindi solo se si incontrano molti messaggi di avviso e si è certi che è OK ignorarli tutti, Ctrl + C e ripetere il comando con " f". - thomasrutter
@BKSpurgeon a meno che digiti accidentalmente --no-preserve-root pure. - muru
@thomasrutter ... D'accordo. Un proprietario di file "xxx": radice  e gruppo: radice può essere cancellato con il -f interruttore; e senza sudo. Questo è il messaggio senza -f: "rm: rimuovi il file normale protetto da scrittura '/home/william/.cache/netbeans/v08.01/tmp/xxx'? _ ". _Tread delicatamente. - will


rm -R lampp

Tuttavia, devi fare attenzione con un comando ricorsivo come questo, poiché è facile eliminare accidentalmente molto più di quanto volevi.

È consigliabile ricontrollare sempre la directory in cui ti trovi e se hai digitato correttamente il comando, prima di premere Invio.

Versione più sicura

rm -R -i lampp

Aggiunta -i lo rende un po 'più sicuro, perché ti chiederà ogni cancellazione. Tuttavia, se stai cancellando molti file questo non sarà molto pratico. Tuttavia, puoi provare questo prima.

Nota su  -f  opzione:

Molte persone suggeriscono di usare -f (combinandolo in -Rf o -rf), sostenendo che si sbarazza di fastidiosi suggerimenti. Tuttavia, in casi normali non ne hai bisogno, e usarlo sopprime alcuni problemi che probabilmente hai fare voglio sapere. Quando lo usi, non sarai avvisato se i tuoi argomenti forniscono una directory o un file non esistente: rm non riuscirà a cancellare nulla. Bud B B Bud B B Bud B Bud B Bud B Bud B Bud B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B -f: se ci sono problemi con i tuoi argomenti, allora noterai. Se inizi a ricevere troppe richieste 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 dispone di autorizzazioni complete per i file e le directory che stai eliminando, in modo da evitare questi prompt in primo luogo.


89
2017-11-16 04:56



Nota: minuscolo -r può essere usato anche qui e ha lo stesso effetto qui. Tendo solo a usare le maiuscole -R perché è coerente con altri comandi che uso come grep e chmod, alcuni dei quali supportano solo la forma maiuscola. - thomasrutter
Questo ha funzionato per me usando adb (Android debug bridge) su Android. Stavo cercando rm -rf ma non ha funzionato. Dovuto usare rm -R. Grazie. - raddevus


Esistono molti modi per eliminare una directory tramite la modalità CLI. Dipende dal modo in cui ti senti a tuo agio.

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

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


21
2017-11-16 05:38





Oggi ho avuto qualche problema, ma l'ho superato con sudo.

Avvertenza: sii assolutamente certo di voler cancellare l'intera cosa prima di usare il comando qui sotto.

$ sudo rm -R [Directory name]

Oggi l'ho fatto con successo e ho rimosso molte directory non vuote che ho confermato di non aver voluto / necessario.

Sto usando 14.04 LTS


-2
2017-09-28 23:00



"SUDO" non è un comando - "sudo" è. Tuttavia, non si usa sudo per cancellare una directory non vuota, la si usa per cancellare un file che non è di tua proprietà. Fare ciò è ovviamente pericoloso e poco intelligente, poiché non dovresti eliminare ciecamente i file che non possiedi. - Marty Fried


Tra l'altro, personalmente volevo eliminare una directory contenente un file / s protetto da scrittura (directory .git e sub) e alla fine ho realizzato che anch'io dovevo diventare un superutente per poter cancellare 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/

-3
2017-09-17 17:35



Non penso che tu abbia bisogno sudo su Qui. Basta prefisso il rm comando con sudo. Per sicurezza è una buona pratica (secondo i sostenitori di sudo) non rimanere in un prompt di root quando non è necessario. - thomasrutter
Inoltre, sii molto molto sicuro della directory in cui ti trovi sudo rm -r. - Tony Martin
È possibile rendere il comando root-relativo (/directory_name) quindi non ci sono dubbi su quale directory stai cancellando. - Yaakov Ainspan