Android

Hoe (lege) bestanden in Linux af te korten

How to Navigate the Command Line in Linux (cd, ls)

How to Navigate the Command Line in Linux (cd, ls)

Inhoudsopgave:

Anonim

In sommige situaties wilt u een bestaand bestand inkorten (leegmaken) tot een lengte van nul. Kort gezegd betekent het afkappen van een bestand dat de inhoud van het bestand wordt verwijderd zonder het bestand te verwijderen.

Een bestand inkorten gaat veel sneller en eenvoudiger dan het bestand verwijderen, opnieuw maken en de juiste machtigingen en eigendom instellen. Als het bestand door een proces wordt geopend, kan het programma dat het gebruikt mogelijk een storing veroorzaken.

In deze zelfstudie wordt uitgelegd hoe bestanden op nul kunnen worden afgekapt in Linux-systemen met behulp van shell-omleiding en de opdracht truncate .

Shell-omleiding

De eenvoudigste en meest gebruikte methode om bestanden in te korten is het gebruik van de shell-omleidingsoperator.

Het algemene formaat voor het afkappen van bestanden met behulp van omleiding is:

: > filename

Laten we het commando afbreken:

  • De : dubbele punt betekent true en produceert geen uitvoer. De omleidingsoperator > leidt de uitvoer van de vorige opdracht om naar het gegeven bestand. filename , het bestand dat u wilt afkappen.

Als het bestand bestaat, wordt het afgekapt tot nul. Anders wordt het bestand gemaakt.

In plaats van : kan ook een andere opdracht gebruiken die geen uitvoer produceert.

Hier is een voorbeeld van het gebruik van de opdracht cat om de inhoud van het /dev/null apparaat uit te voeren, dat alleen een einde-van-bestand-teken retourneert:

cat /dev/null > filename

Een ander commando dat kan worden gebruikt is echo . De optie -n vertelt echo om geen nieuwe regel toe te voegen:

echo -n > filename

Op de meeste moderne shells zoals Bash of Zsh kunt u de opdracht vóór het omleidingssymbool weglaten en gebruiken:

> filename

Om een ​​bestand te kunnen afkappen, moet u over schrijfrechten voor het bestand beschikken. Normaal gesproken zou u hiervoor sudo gebruiken, maar de verhoogde rootrechten zijn niet van toepassing op de omleiding. Hier is een voorbeeld:

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

Er zijn verschillende oplossingen waarmee omleiden met sudo . De eerste optie kan een nieuwe shell met sudo uitvoeren en een commando binnen die shell uitvoeren met de vlag -c :

sudo sh -c '> filename'

Een andere optie is om de uitvoer naar de tee opdracht te leiden, de tee rechten met sudo verhogen en de lege uitvoer naar een bepaald bestand te schrijven:

: | sudo tee filename

commando truncate

truncate is een opdrachtregelprogramma waarmee u de grootte van een bestand kunt verkleinen of uitbreiden tot een bepaalde grootte.

De algemene syntaxis voor het inkorten van bestanden op nul met de opdracht truncate is als volgt:

truncate -s 0 filename

Met de optie -s 0 wordt de bestandsgrootte op nul ingesteld.

Als u bijvoorbeeld het Nginx-toegangslogboek wilt legen, gebruikt u:

sudo truncate -s 0 /var/log/nginx/access.log

Leeg alle logbestanden

Na verloop van tijd kan uw schijf vol raken met veel grote logbestanden die grote hoeveelheden schijfruimte in beslag nemen.

De volgende opdracht maakt bestanden leeg die eindigen op ".log" in de map /var/log :

sudo truncate -s 0 /var/log/**/*.log

Een betere optie is om de logboekbestanden te roteren, te comprimeren en te verwijderen met de tool logrotate .

Conclusie

Om een ​​bestand in Linux af te breken, gebruikt u de omleidingsoperator > gevolgd door de bestandsnaam.

afgekapte terminal