Tijdens het werken met bestanden in Linux-terminals kan het voorkomen dat u de inhoud van een bestand wilt wissen zonder het te hoeven openen met een Linux-opdrachtregel-editor. Hoe kan dit worden bereikt? In dit artikel zullen we verschillende manieren bespreken om de inhoud van een bestand te legen met behulp van een aantal handige commando’s.
Voorzichtig: Voordat we overgaan tot het bekijken van de verschillende manieren, moet u er rekening mee houden dat, omdat in Linux alles een bestand is, u er altijd voor moet zorgen dat het bestand of de bestanden die u leegmaakt, geen belangrijke gebruikers- of systeembestanden zijn. Het wissen van de inhoud van een kritiek systeem- of configuratiebestand kan leiden tot een fatale applicatie-/systeemfout of -falen.
Met dat gezegd, hieronder staan middelen om de inhoud van bestanden te wissen vanaf de commandoregel.
Belangrijk: Voor het doel van dit artikel, hebben we bestand access.log
gebruikt in de volgende voorbeelden.
Leeg de inhoud van een bestand door het om te leiden naar Null
Een gemakkelijke manier om de inhoud van een bestand te legen of leeg te maken door gebruik te maken van shell redirect null
(niet-bestaand object) naar het bestand zoals hieronder:
# > access.log
Empty File Using ’true’ Command Redirection
Hier zullen we een symbool gebruiken :
is een shell ingebouwd commando dat in essentie equivalent is aan het true
commando en het kan worden gebruikt als een no-op (geen bewerking).
Een andere methode is om de uitvoer van :
of true
ingebouwde commando’s om te leiden naar het bestand als volgt:
# : > access.logOR # true > access.log
Empty File Using cat/cp/dd utilities with /dev/null
In Linux wordt het null
-apparaat in principe gebruikt voor het weggooien van ongewenste uitvoerstromen van een proces, of anders als een geschikt leeg bestand voor invoerstromen. Dit wordt gewoonlijk gedaan door een omleiding mechanisme.
En het /dev/null
apparaat bestand is daarom een speciaal bestand dat alle invoer die er naar toe wordt gestuurd wegschrijft (verwijdert) of de uitvoer is hetzelfde als die van een leeg bestand.
Extra kunt u de inhoud van een bestand leegmaken door de uitvoer van /dev/null
erheen te leiden (bestand) als invoer met het commando cat:
# cat /dev/null > access.log
Volgende zullen we het commando cp gebruiken om de inhoud van een bestand leeg te maken, zoals weergegeven.
# cp /dev/null access.log
In het volgende commando verwijst if
naar het invoerbestand en of
naar het uitvoerbestand.
# dd if=/dev/null of=access.log
Lege bestandsinhoud met behulp van echo commando
Hier kunt u een echo commando gebruiken met een lege tekenreeks en deze als volgt naar het bestand omleiden:
# echo "" > access.logOR# echo > access.log
Note: U moet in gedachten houden dat een lege string niet hetzelfde is als null. Een tekenreeks is al een object, maar kan ook leeg zijn, terwijl null gewoon het niet-bestaan van een object betekent.
Wanneer je daarom de uitvoer van het bovenstaande echo commando naar het bestand stuurt, en de inhoud van het bestand bekijkt met het cat commando, wordt een lege regel (lege tekenreeks) afgedrukt.
Om een null uitvoer naar het bestand te sturen, gebruik je de vlag -n
die echo vertelt om de laatste newline die leidt naar de lege regel die in het vorige commando is geproduceerd, niet uit te voeren.
# echo -n "" > access.log
Empty File Using truncate Command
Het truncate commando helpt om de grootte van een bestand te verkleinen of te vergroten tot een gedefinieerde grootte.
U kunt het gebruiken met de -s
optie die de bestandsgrootte specificeert. Om een bestand leeg te maken, gebruikt u een grootte van 0 (nul) zoals in het volgende commando:
# truncate -s 0 access.log
Dat was het voor nu, in dit artikel hebben we meerdere methodes behandeld om de bestandsinhoud op te ruimen of te legen met eenvoudige opdrachtregelhulpprogramma’s en shell-omleidingsmechanisme.
Dit zijn waarschijnlijk niet de enige praktische manieren om dit te doen, dus u kunt ons ook vertellen over andere methoden die niet in deze gids zijn genoemd via de feedbacksectie hieronder.