Come rimuovo una directory e tutto il suo contenuto?

In bash tutto quello che so è che

rmdir directoryname 

rimuoverà la directory ma solo se è vuoto. Cè un modo per forzare la rimozione delle sottodirectory?

Risposta

Il seguente comando lo farà per te . Fai comunque attenzione.

rm -rf directoryname 

Commenti

  • " -f " è " –force " che sostituisce alcuni controlli di integrità e prompt. Un comando più sicuro con cui iniziare sarebbe rm -r directoryname.
  • Per qualche motivo ricevo un errore rm: invalid option -- r quando tentativo di eliminare una directory con rm -r < directoryname >.
  • @Sunspawn Controlla questa domanda correlata per vedere se ' è il caso.
  • @JimParis Penso che la parola " più sicuro " è relativo. Supponi di scrivere uno script da eseguire su un computer remoto. Quello script ha un comando che dovrebbe rimuovere una directory. In questo caso, sarebbe " più sicuro " utilizzare rm -rf directoryname perché non avresti ' Non voglio che lo script metta in pausa lesecuzione, perché ' è in attesa dellinput dellutente. Ovviamente, devi assicurarti che leliminazione della directory non causi danni.

Rispondi

se rm -rf directoryname fallisce, prova a utilizzare rm -R -f directoryname o rm --recursive -f directoryname.

Se non hai fortuna con questi, dovresti considerare di reinstallare rm o cambiare shell.

Commenti

  • Queste erano le opzioni disponibili sul mio rm pagina man, lho cercato digitando man rm per visualizzare le mie opzioni sulleliminazione ricorsiva e le opzioni forza .
  • Il tuo rm elenco delle pagine man -r? Che cosa fa? (Provalo in una directory che crei solo a scopo di test, con solo file fittizi (e forse sottodirectory).) Quale sistema operativo stai utilizzando?
  • P.S. Se rm -r ' non funziona, sarebbe un problema del sistema operativo, non un problema della shell. (A rigor di termini, sarebbe un problema con la versione di rm che ' stai utilizzando, quindi puoi risolverlo installando un versione diversa di rm oppure cerca nel tuo sistema se hai già una versione diversa di rm in una directory diversa da /bin.)
  • Ah, giusto. Ho dimenticato di menzionare che ' m su Ubuntu 14.04 Quando ho eseguito man rm nel mio terminale, mi ha dato un file di testo con less visualizzatore di testo. Ho trovato una voce rientrata con un intero che aveva le opzioni -R e –recursive cozed con lopzione -r , a significare che tutti questi argomenti sono identici.
  • modifica: hai provato sudo rm -r directoryName ? Le regole non scritte dei comandi di base sono che -r consentirà a un programma di essere eseguito in modo ricorsivo su ogni file del tuo filesystem (a partire da dove scegli tu!) E che -f farà le cose con forza, anche se ' è pericoloso . ' cd ', ' mv ', ' ls ' principalmente sostiene questo principio vero. ls -r / diventerà un duzie e cp -rf / /dev/null distruggerà tutto sul tuo filesystem. < – Non eseguire mai quel comando!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *