Hur tar jag bort en katalog och allt dess innehåll?

I bash är allt jag vet att

rmdir directoryname 

tar bort katalogen men bara om den är tom. Finns det ett sätt att tvinga bort underkataloger?

Svar

Följande kommando gör det åt dig Var dock försiktig.

rm -rf directoryname 

Kommentarer

  • " -f " är " – force " vilket åsidosätter vissa sanityskontroller och frågar. Ett säkrare kommando att börja med skulle vara rm -r directoryname.
  • Av någon anledning får jag ett rm: invalid option -- r -fel försöker ta bort en katalog med rm -r < katalognamn >.
  • @Sunspawn Kontrollera den här relaterade frågan för att se om det är '.
  • @JimParis Jag tror att ordet " säkrare " är relativ. Antag att du skriver ett manus för att köras på en fjärrdator. Det skriptet har ett kommando som ska ta bort en katalog. Här skulle det vara " säkrare " att använda rm -rf directoryname coz du skulle inte vilja ' t vill att ditt skript ska pausa körningen, eftersom det ' väntar på användarinmatning. Naturligtvis måste du vara säker på att radering av katalogen inte skadar.

Svara

om rm -rf directoryname misslyckas med dig, försök att använda rm -R -f directoryname eller rm --recursive -f directoryname.

Om du inte har tur med dessa bör du överväga att installera om rm eller byta skal.

Kommentarer

  • Det här var alternativen som finns tillgängliga på min rm man-sida, jag letade upp det genom att skriva man rm för att se mina alternativ för rekursiv radering och force -alternativen.
  • Har din rm mansidlista -r? Vad gör den? (Testa det i en katalog som du skapar bara för teständamål, med bara dummyfiler (och kanske underkataloger).) Vilket operativsystem använder du?
  • P.S. Om rm -r inte ' t fungerar, skulle det vara ett OS-problem, inte ett shell-problem. (Strängt taget skulle det vara ett problem med versionen av rm som du ' använder, så att du kan ta itu med det genom att installera en annan version av rm, eller söker i ditt system för att se om du redan har en annan version av rm i någon annan katalog än /bin.)
  • Ah, höger. Jag glömde att nämna att jag ' m på Ubuntu 14.04 När jag sprang man rm i min terminal gav det mig en textfil med less textvisare. Jag rullade och hittade en indragad post med en helhet som hade alternativen -R och –recursive samordnade med alternativet -r , vilket betyder att alla dessa argument är identiska.
  • edit: har du provat sudo rm -r directoryName ? De oskrivna reglerna för de grundläggande kommandona är att -r gör det möjligt för ett program att köra rekursivt på varje fil i ditt filsystem (börjar var du än väljer!) Och att -f kraftigt kommer att göra saker, även om det ' s farligt . ' cd ', ' mv ', ' ls ' mestadels håller denna princip sant. ls -r / kommer att bli en duzie och cp -rf / /dev/null kommer att förstöra allt i ditt filsystem. < – Kör aldrig kommandot!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *