Vraag Hoe een niet-lege map verwijderen in Terminal?


Hoe verwijder ik de volgende map?

Ik typte:

rmdir lampp

Deze fout komt op:

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

Is er een opdracht om alle bestanden in de map te verwijderen en de map met mappen te verwijderen?


539
2017-11-16 04:37


oorsprong


Ik kan een map zoals "Nieuwe map" niet verwijderen met alle bovenstaande gedetailleerde opdrachten. Het is dubbel geformuleerd. Maar ik wil die map verwijderen. Alle suggesties worden toegejuicht. T.Divakara, Bengaluru, India
Het is de lege ruimte in de bestandsnaam, probeer met behulp van 'quotes'> rmdir 'Nieuwe map' <dan de mapluiers, of gebruik escape-tekens voor niet-zichtbare tekens. - Ken Mollerup
Gewoon doen rm -r lampp zal ik doen. - John Strood


antwoorden:


Gebruik het onderstaande commando:

rm -rf lampp

Het verwijdert alle bestanden en mappen in de lampp directory.

In het geval dat de gebruiker niet de toestemming heeft om de map te verwijderen:

Toevoegen sudo aan het begin van het commando:

sudo rm -rf folderName

Anders, zonder sudo je zal worden teruggestuurd, de toestemming wordt geweigerd. En het is een goede gewoonte om te proberen het niet te gebruiken -f tijdens het verwijderen van een map:

sudo rm -r folderName

Opmerking: dit gaat ervan uit dat u zich al op hetzelfde niveau bevindt als de map die u in de terminal wilt verwijderen, als dat niet het geval is:

sudo rm -r /path/to/folderName

Ter info: je kunt letters gebruiken -f, -r, -v:

  • -f = om niet-bestaande bestanden te negeren, nooit vragen
  • -r = om mappen en hun inhoud recursief te verwijderen
  • -v = om uit te leggen wat er wordt gedaan

755
2017-11-16 05:19



Naar mijn bescheiden mening is het een goede gewoonte om nooit de "f" toe te voegen bij de eerste poging. Het doel ervan is om bepaalde waarschuwingsprompts te negeren die belangrijk kunnen zijn, vooral als je het per ongeluk op / uit de verkeerde map hebt gedaan. Naar mijn mening is het goed om eerst zonder de "f" te proberen, en dan alleen als je veel waarschuwingsprompts tegenkomt en je zeker weet dat het OK is om ze allemaal te negeren, Ctrl + C eruit en herhaal het commando met de " f". - thomasrutter
@BKSpurgeon niet tenzij je hebt per ongeluk getypt --no-preserve-root te. - muru
@thomasrutter ... Mee eens. Een bestand "xxx" eigenaar: wortel  en groep: wortel kan worden verwijderd met de -f schakelaar; en zonder sudo. Dit is het bericht zonder -f: "rm: verwijder beveiligd tegen schrijven '/home/william/.cache/netbeans/v08.01/tmp/xxx'? _ ". _Lees zachtjes. - will


rm -R lampp

U moet echter voorzichtig zijn met een recursief commando zoals dit, omdat het gemakkelijk is om per ongeluk veel meer te verwijderen dan u had bedoeld.

Het is een goed idee om altijd te controleren in welke map u zich bevindt en of u de opdracht correct hebt ingevoerd voordat u op Enter drukt.

Veiliger versie

rm -R -i lampp

Het toevoegen -i maakt het een beetje veiliger, omdat het u bij elke verwijdering waarschuwt. Als u echter veel bestanden verwijdert, zal dit niet erg praktisch zijn. Toch kun je dit eerst proberen.

Opmerking over  -f  keuze:

Veel mensen stellen voor om te gebruiken -f (combineren in -Rf of -rf), bewerend dat het vervelende vragen wegwerkt. In normale gevallen hebt u het echter niet nodig en als u dit gebruikt, onderdrukt u waarschijnlijk enkele problemen do wil weten over. Wanneer u het gebruikt, wordt u niet gewaarschuwd als uw argumenten een niet-bestaande map of bestand (en) leveren: rm zal er gewoon niet in slagen iets te verwijderen. Als algemene regel, probeer eerst zonder de -f: als er problemen zijn met uw argumenten, dan zult u het merken. Als je te veel prompts krijgt over bestanden zonder schrijfrechten, dan kun je het proberen met -f. U kunt ook de opdracht uitvoeren vanuit een gebruiker (of de superuser met sudo) die volledige machtigingen heeft voor de bestanden en mappen die u verwijdert om deze prompts in de eerste plaats te voorkomen.


89
2017-11-16 04:56



Opmerking: kleine letters -r kan ook worden gebruikt en heeft hetzelfde effect hier. Ik gebruik alleen hoofdletters -R omdat het consistent is met andere commando's die ik gebruik zoals grep en chmod, waarvan sommige alleen de vorm in hoofdletters ondersteunen. - thomasrutter
Deze werkte voor mij met adb (android debug bridge) op Android. Probeerde rm -rf maar het werkte niet. Moet rm -R gebruiken. Bedankt. - raddevus


Er zijn veel manieren om een ​​map te verwijderen via de CLI-modus. Het hangt ervan af op welke manier je je comfortabel voelt.

rm -rvf /path/to/directory  
  • -r  = verwijder mappen en hun inhoud recursief
  • -v  = uitleggen wat er wordt gedaan
  • -f  = negeer niet-bestaande bestanden, nooit vragen

Als je nieuw bent in Linux, gebruik dan de man pages of commands (man rm) voor meer opties en meer nauwkeurigheid.


21
2017-11-16 05:38





Ik had daar vandaag wat moeite mee, maar ik heb het met sudo overwonnen.

Waarschuwing: wees er zeer zeker van dat u het hele ding wilt verwijderen voordat u de onderstaande opdracht gebruikt.

$ sudo rm -R [Directory name]

Ik heb dit met succes vandaag gedaan en veel niet-lege mappen verwijderd die ik bevestigde dat ik ze niet wilde / nodig had.

Ik gebruik 14.04 LTS


-2
2017-09-28 23:00



"SUDO" is geen opdracht - "sudo" is. Toch gebruik je sudo niet om een ​​niet-lege map te verwijderen, je gebruikt het om een ​​bestand te verwijderen dat niet jouw eigendom is. Dit vanzelfsprekend doen is gevaarlijk en niet erg slim, want je zou niet blindelings bestanden moeten verwijderen die je niet bezit. - Marty Fried


Overigens wilde ik persoonlijk een map verwijderen die een met een tegen schrijven beveiligd bestand / s (.git en submappen) bevatte en uiteindelijk besefte ik dat ik ook een supergebruiker moest worden om deze bestanden met succes te verwijderen. Dit is wat ik deed:

#became super user
sudo su -

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

-3
2017-09-17 17:35



Ik denk niet dat je het nodig hebt sudo su hier. Gewoon het voorvoegsel rm commando met sudo. Voor de veiligheid is het een goede gewoonte (volgens voorstanders van sudo) om niet in een rootprompt te blijven als dat niet nodig is. - thomasrutter
Wees er ook heel zeker van in welke map je zit als jij sudo rm -r. - Tony Martin
U kunt het commando root-relative (/directory_name) dus er kan geen twijfel bestaan ​​over welke map u verwijdert. - Yaakov Ainspan