Linux rm-commando: de opties van rm -rf en verwijderen zonder bevestiging

Met het rm-commando verwijderde bestanden zijn meteen weg, zonder omweg via een prullenbak. rm is de afkorting van remove en verwijdert bestanden en mappen. Dit artikel behandelt het basisgebruik, de opties en waarom de rootmap blijft staan, zelfs als je [rm -rf /] uitvoert.
Op AlmaLinux 9.8 heeft het root-account standaard [alias rm='rm -i'], dus vóór het verwijderen wordt om bevestiging gevraagd. Voor Linux-systemen zonder deze instelling laat het artikel ook zien hoe je de alias zelf toevoegt.
✅ Basisgebruik
De basissyntaxis is als volgt.
rm -opties doel: Bestand of map
Een bestand wordt verwijderd met alleen de naam; een map pas als je de optie -r toevoegt.
# bestand verwijderen
rm file1
# meerdere bestanden verwijderen
rm file1 file2
# map met alle inhoud verwijderen
rm -r dir1/
# lege map verwijderen
rm -d dir1/~]# rm dir1/
rm: cannot remove 'dir1/': Is a directoryNoem je een map zonder optie, dan wordt hij niet verwijderd, zoals hierboven.
Een symbolische link verwijderen haalt alleen de link weg; het bestand waarnaar hij wijst, blijft staan. Voor een controle voor en na het verwijderen gebruik je ook het ls-commando.
✅ rm -rf: verwijderen zonder bevestiging
Het rm-commando vraagt [remove regular file] omdat rm op het root-account via de alias [rm -i] draait.
~]# rm file1
rm: remove regular file 'file1'? y
~]# alias rm
alias rm='rm -i'Een map verwijderen met de optie -r vraagt om bevestiging bij het binnengaan van elke map en voor elk bestand, wat bij veel bestanden vervelend wordt.
~]# rm -r logs/
rm: descend into directory 'logs/'? y
rm: remove regular file 'logs/access.log'? y
rm: remove regular empty file 'logs/error.log'? y
rm: remove directory 'logs/'? yVoeg in dat geval de optie -f toe: die verwijdert zonder bevestiging en meldt geen fout, zelfs als het bestand niet bestaat.
rm -rf logs/Een backslash [\] voor het commando zetten om de alias te omzeilen, of [yes |] ervoor zetten zodat bij elke vraag y wordt ingevoerd, geeft hetzelfde resultaat.
\rm -r logs/
yes | rm -r logs/✅ Opties van het rm-commando & simulator
| Optie | Uitleg | |
|---|---|---|
| -f | --forceVerwijdert zonder bevestiging en meldt geen fout bij bestanden die niet bestaan | |
| -i | Vraagt vóór elke verwijdering om bevestigingalias rm='rm -i' | |
| -I(hoofdletter i) | Vraagt maar één keer bij vier of meer bestanden of samen met -r | |
| -r, -R | --recursiveVerwijdert een map samen met submappen en bestanden | |
| -d | --dirVerwijdert een lege map | |
| -v | --verboseToont elk verwijderd bestand en elke map op een eigen regel | |
| --preserve-root | Verwijdert de rootmap (/) niet (standaard) | |
| --no-preserve-root | Zet de bescherming van de rootmap (/) uit |
✅ rm -rf /: de rootmap beschermen
Bij hostingwerk worden soms bestanden verwijderd die niet weg hadden gemogen. De meeste zijn uit een back-up terug te zetten, maar is de rootmap eenmaal verwijderd, dan is herstel zelfs met een snapshot een gedoe. Ik heb meerdere keren gehoord van gevallen waarin een verkeerd getypt rm -rf-commando niet meer ongedaan kon worden.
Het rm-commando past standaard de optie [--preserve-root] toe, dus de rootmap wordt niet verwijderd, zelfs als je [rm -rf /] uitvoert.
~]# rm -rf /
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe[rm -rf /*] houdt het echter niet tegen. De shell vervangt [/*] door mapnamen zoals /bin, /etc en /home voordat ze worden doorgegeven, dus het rm-commando verwijdert elk van die mappen in plaats van [/].
Een verse installatie van AlmaLinux 9.8 heeft de -i-aliassen voor rm, cp en mv in [/root/.bashrc], zoals hieronder. Gewone gebruikersaccounts hebben deze aliassen niet.
~]# grep alias /root/.bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'Op een account of Linux-systeem zonder de alias voeg je één regel toe onderaan [~/.bashrc] en laad je het opnieuw.
# onderaan ~/.bashrc toevoegen
alias rm='rm -i'
# opnieuw laden
source ~/.bashrc
ℹ️ Affiliatemelding
De content van deze site bevat affiliatelinks. Koopt een bezoeker via een van deze links een product of dienst, dan ontvangt deze site een commissie van de verkoper. Het bedrag dat de koper betaalt (bij acties gaat het omlaag ↓) wordt daardoor niet hoger. De vermelde prijzen, kortingen en voorraad gelden op het moment van schrijven en kunnen afwijken; controleer ze daarom vóór je aankoop bij de verkoper. Producten worden gekozen en beoordeeld volgens onze eigen criteria, en commissies hebben geen invloed op de volgorde of de inhoud van de beoordelingen.