Hoe bestanden en mappen in de Linux Terminal te verwijderen

De opdrachten rm en rmdir verwijderen bestanden en mappen op Linux, macOS en andere Unix-achtige besturingssystemen. Ze lijken op de opdrachten del en deltree in Windows en DOS. Deze commando’s zijn zeer krachtig en hebben nogal wat opties.

Het is belangrijk op te merken dat bestanden en mappen die met rm en rmdir zijn verwijderd, niet naar de prullenmand worden verplaatst. Ze worden onmiddellijk van uw computer verwijderd. Als u per ongeluk bestanden verwijdert met deze opdrachten, kunt u ze alleen herstellen vanaf een back-up.

Hoe bestanden te verwijderen met rm

Het eenvoudigste geval is het verwijderen van een enkel bestand in de huidige map. Typ de opdracht rm, een spatie en vervolgens de naam van het bestand dat u wilt verwijderen.

rm file_1.txt

Als het bestand zich niet in de huidige werkmap bevindt, geeft u een pad op naar de locatie van het bestand.

rm ./path/to/the/file/file_1.txt

U kunt meer dan één bestandsnaam doorgeven aan rm. Als u dit doet, worden alle opgegeven bestanden verwijderd.

rm file_2.txt file_3.txt

Jokertekens kunnen worden gebruikt om groepen bestanden te selecteren die moeten worden verwijderd. De * staat voor meerdere karakters en de ? staat voor een enkel teken. Met deze opdracht worden alle png-afbeeldingsbestanden in de huidige werkmap verwijderd.

rm *.png

Met deze opdracht worden alle bestanden met een extensie van één teken verwijderd. Dit zou bijvoorbeeld File.1 en File.2 verwijderen, maar niet File.12.

rm *.?

Als een bestand tegen schrijven is beveiligd, wordt u gevraagd voordat het bestand wordt verwijderd. U moet antwoorden met y of n en op “Enter” drukken.

Gebruik de optie -i (interactief) om het risico van het gebruik van rm met jokertekens te verkleinen. Dit vereist dat u de verwijdering van elk bestand bevestigt.

rm -i *.dat

De -f (force) optie is het tegenovergestelde van interactief. Er wordt niet om bevestiging gevraagd, zelfs niet als bestanden tegen schrijven zijn beveiligd.

rm -f filename

Hoe mappen te verwijderen met rm

Gebruik de optie -d (directory) om een ​​lege directory te verwijderen. U kunt net als bij bestandsnamen jokertekens (* en ?) gebruiken in directorynamen.

rm -d directory

Als u meer dan één mapnaam opgeeft, worden alle opgegeven lege mappen verwijderd.

rm -d directory1 directory2 /path/to/directory3

Gebruik de -r (recursieve) optie om mappen te verwijderen die niet leeg zijn. Voor alle duidelijkheid: hiermee worden de mappen en alle bestanden en submappen die zich daarin bevinden verwijderd.

rm -r directory1 directory2 directory3

Als een map of een bestand tegen schrijven is beveiligd, wordt u gevraagd het verwijderen te bevestigen. Gebruik de opties -r (recursief) en -f (forceren) samen om mappen te verwijderen die niet leeg zijn en om deze prompts te onderdrukken.

rm -rf directory

Zorg is hier vereist. Een fout maken met de opdracht rm -rf kan gegevensverlies of systeemstoringen veroorzaken. Het is gevaarlijk en voorzichtigheid is het beste beleid. Om inzicht te krijgen in de directorystructuur en de bestanden die worden verwijderd door het rm -rf-commando, gebruikt u het tree-commando.

  Bestanden delen op Tor vanuit Linux met Onion Share

Gebruik apt-get om dit pakket op uw systeem te installeren als u Ubuntu of een andere op Debian gebaseerde distributie gebruikt. Gebruik op andere Linux-distributies in plaats daarvan de tool voor pakketbeheer van uw Linux-distributie.

sudo apt-get install tree

Het uitvoeren van het tree-commando levert een eenvoudig te begrijpen diagram op van de directorystructuur en de bestanden onder de directory van waaruit het wordt uitgevoerd.

tree

U kunt ook een pad naar het tree-commando opgeven om ervoor te zorgen dat het de tree start vanuit een andere map in het bestandssysteem.

tree path/to/directory

Het rm-commando heeft ook -one-file-system, -no-preserve-root, -preserve-root opties, maar die worden alleen aanbevolen voor geavanceerde gebruikers. Als er iets misgaat, kunt u per ongeluk al uw systeembestanden verwijderen. Raadpleeg de commando’s handleiding voor meer informatie.

  Curl gebruiken om bestanden te downloaden vanaf de Linux-opdrachtregel

Hoe mappen te verwijderen met rmdir

Er is nog een ander commando, rmdir genaamd, dat u kunt gebruiken om mappen te verwijderen. Het verschil tussen rm en rmdir is dat rmdir alleen mappen kan verwijderen die leeg zijn. Het zal nooit bestanden verwijderen.

Het eenvoudigste geval is het verwijderen van een enkele lege map. Net als bij rm, kunt u meerdere directorynamen doorgeven aan rmdir , of een pad naar een directory.

Verwijder een enkele map in de huidige map door de naam door te geven aan rmdir:

rmdir directory

Verwijder meerdere mappen door een lijst met namen door te geven aan rmdir:

rmdir directory1 directory2 directory3

Verwijder een map die niet in de huidige map staat door het volledige pad naar die map op te geven:

rmdir /path/to/directory

Als u een map probeert te verwijderen die niet leeg is, zal rmdir u een foutmelding geven. In het volgende voorbeeld verwijdert rmdir met succes en stil de map clients, maar weigert de map projecten te verwijderen omdat deze bestanden bevat. De projectendirectory blijft precies zoals hij was en de bestanden erin blijven ongewijzigd.

Wanneer rmdir de foutmelding “Directory niet leeg” geeft, stopt het met het verwerken van de mappen die eraan zijn doorgegeven op de opdrachtregel. Als je het hebt gevraagd om vier mappen te verwijderen en de eerste bevatte bestanden, zou rmdir je de foutmelding geven en niets meer doen. Je kunt het forceren om deze fouten te negeren met de -ignore-fail-on-non-empty optie, zodat andere mappen worden verwerkt.

In het volgende voorbeeld zijn twee mappen doorgegeven aan rmdir, dit zijn work/reports en work/quotes . De optie –ignore-fail-on-non-empty is opgenomen in de opdracht. De map werk/rapporten bevat bestanden, dus rmdir kan deze niet verwijderen. De optie –ignore-fail-on-non-empty dwingt rmdir om de fout te negeren en door te gaan naar de volgende map die moet worden verwerkt, namelijk werk/citaten. Dit is een lege map en rmdir verwijdert deze.

  Hoe u uw stamboom op Linux kunt ordenen met Gramps

Dit was het commando dat werd gebruikt.

rmdir --ignore-fail-on-non-empty work/reports /work/quotes

U kunt de optie -p (ouders) gebruiken om een ​​map te verwijderen en ook om de bovenliggende mappen te verwijderen. Deze truc werkt omdat rmdir begint met de doelmap en vervolgens teruggaat naar de bovenliggende map. Die map zou nu leeg moeten zijn, zodat deze door rmdir kan worden verwijderd, en het proces herhaalt zich door een stap terug te zetten op het pad dat aan rmdir was verstrekt.

In het volgende voorbeeld is de opdracht die aan rmdir wordt doorgegeven:

rmdir -p work/invoices

Zowel de facturen als de werkdirectories worden verwijderd, zoals gevraagd.

Of je nu Bash of een andere shell gebruikt, Linux biedt flexibele en krachtige commando’s waarmee je mappen en bestanden rechtstreeks vanaf de opdrachtregel van de terminal kunt verwijderen. Sommige mensen hebben liever een workflow die om de terminal draait. Anderen hebben hierin misschien geen keus. Ze werken mogelijk op servers zonder dat een GUI is geïnstalleerd of aan een externe sessie op een headless-systeem zoals een Raspberry Pi. Deze commando’s zijn perfect voor die groep mensen.

Maar welk type workflow u ook verkiest, deze commando’s lenen zich uitstekend om in shellscripts te worden opgenomen. Als een script wordt geactiveerd door een cron-taak, kan het helpen bij het automatiseren van routinematige huishoudelijke taken, zoals het opschonen van ongewenste logbestanden. Als je die use case onderzoekt, onthoud dan de kracht van deze commando’s, test alles zorgvuldig en zorg altijd voor een recente back-up.