Bestanden en mappen verwijderen in de Linux Terminal

Bash-terminal op Ubuntu-laptopconcept
Fatmawati Achmad Zaenuri / Shutterstock.com

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

Het is belangrijk op te merken dat bestanden en mappen verwijderd zijn met rm en rmdir niet naar de prullenbak 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 directory. Typ de rm opdracht, een spatie en vervolgens de naam van het bestand dat u wilt verwijderen.

rm file_1.txt

Als het bestand niet in de huidige werkmap staat, geef dan een pad op naar de locatie van het bestand.

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

U kunt meer dan één bestandsnaam doorgeven rm. Hierdoor worden alle gespecificeerde 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 verwijderd die een extensie van één teken hebben. Hiermee worden bijvoorbeeld File.1 en File.2 verwijderd, maar niet File.12.

rm *.?

Als een bestand tegen schrijven is beveiligd, wordt u hierom gevraagd voordat het bestand wordt verwijderd. U moet reageren met y of n en druk op ‘Enter’.

rm-opdracht met een tegen schrijven beveiligd bestand

Om het risico van gebruik te verminderen rm met jokertekens gebruikt u de -i (interactieve) optie. Dit vereist dat u het verwijderen van elk bestand bevestigt.

rm -i *.dat

rm-opdracht in interactieve modus

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

rm -f filename

Directory’s verwijderen met rm

Om een ​​lege map te verwijderen, gebruikt u de -d (directory) optie. U kunt jokertekens gebruiken (* en ?) in directorynamen net zoals u kunt met bestandsnamen.

rm -d directory

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

rm -d directory1 directory2 /path/to/directory3

Om mappen te verwijderen die niet leeg zijn, gebruikt u de -r (recursieve) optie. Voor alle duidelijkheid: hiermee worden de mappen en alle bestanden en submappen die erin staan ​​verwijderd.

rm -r directory1 directory2 directory3

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

rm -rf directory

Zorg is hier vereist. Een fout maken met de rm -rf commando kan gegevensverlies of een systeemstoring 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, gebruik dan de tree opdracht.

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 de pakketbeheertool van je Linux-distributie.

sudo apt-get install tree

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

tree

uitvoer van boomopdracht

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

tree path/to/directory

De rm commando heeft ook --one-file-system, --no-preserve-root, --preserve-root opties, maar die worden alleen aanbevolen voor gevorderde gebruikers. Als u iets verkeerd doet, kunt u per ongeluk al uw systeembestanden verwijderen. Raadpleeg de handleidingpagina van het commando voor meer informatie.

Directory’s verwijderen met rmdir

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

Het eenvoudigste geval is het verwijderen van een enkele lege map. Net als bij rm, kunt u meerdere directory-namen 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, rmdir zal u een foutmelding geven. In het volgende voorbeeld rmdir verwijdert met succes en stil het clients directory, maar het weigert de projects directory omdat het bestanden bevat. De projects map blijft precies zoals het was en de bestanden erin zijn onaangeroerd.

rmdir-opdracht met een niet-lege map

Wanneer rmdir geeft een “Directory niet leeg” -fout, het stopt met het verwerken van de mappen die eraan zijn doorgegeven op de opdrachtregel. Als je hem hebt gevraagd om vier mappen te verwijderen en de eerste had bestanden erin, rmdir zou u de foutmelding geven en niets meer doen. U kunt het dwingen 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 rmdir, dit zijn work/reports en work/quotes . De --ignore-fail-on-non-empty optie is opgenomen in de opdracht. De work/reports map bevat bestanden, dus rmdir kan het niet verwijderen. De --ignore-fail-on-non-empty optie krachten rmdir om de fout te negeren en door te gaan naar de volgende map die het moet verwerken, namelijk work/quotes. Dit is een lege map, en rmdir verwijdert het.

Dit was het commando dat werd gebruikt.

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

rmdir met --ignore-fail-on-non-empty optie

U kunt de -p (ouders) optie om een ​​map te verwijderen en ook de bovenliggende mappen te verwijderen. Deze truc werkt omdat rmdir begint met de doelmap en gaat vervolgens terug naar de bovenliggende map. Die map zou nu leeg moeten zijn, dus het kan worden verwijderd door rmdir, en het proces herhaalt zich om terug te gaan op het pad dat werd geboden rmdir.

In het volgende voorbeeld wordt het commando doorgegeven aan rmdir is:

rmdir -p work/invoices

rmdir-opdracht met de optie ouders verwijderen

Beide invoices en de work mappen worden verwijderd, zoals gevraagd.


Of je nu Bash of een andere shell gebruikt, Linux biedt flexibele en krachtige opdrachten waarmee je mappen en bestanden rechtstreeks vanaf de terminalopdrachtregel kunt verwijderen. Sommige mensen geven de voorkeur aan een workflow die draait om de terminal. Anderen hebben misschien geen keus in deze kwestie. Ze werken mogelijk op servers zonder dat een GUI is geïnstalleerd of op 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 job, kan het helpen bij het automatiseren van routinematige huishoudelijke taken, zoals het verwijderen van ongewenste logbestanden. Als u die use case onderzoekt, onthoud dan de kracht van deze opdrachten, test alles zorgvuldig en houd altijd een recente back-up bij.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in