Android

Slik avkortes (tomme) filer i Linux

Hardware and Drivers in Linux

Hardware and Drivers in Linux

Innholdsfortegnelse:

Anonim

I noen situasjoner kan det være lurt å beskjære (tømme) en eksisterende fil til null lengde. I enkle ord betyr å avkorting av en fil fjerne filinnholdet uten å slette filen.

Å avkutte en fil er mye raskere og enklere enn å slette filen, gjenskape den og stille riktige tillatelser og eierskap. Hvis filen åpnes av en prosess, kan det å fjerne filen føre til at programmet som bruker den, ikke fungerer som den skal.

Denne opplæringen forklarer hvordan du avkorter filer til null størrelse i Linux-systemer ved hjelp av shell omdirigering og truncate .

Shell Redirection

Den enkleste og mest brukte metoden for å avkorte filer er å bruke operatøren > shell omdirigering.

Det generelle formatet for avkorting av filer ved hjelp av omdirigering er:

: > filename

La oss bryte ned kommandoen:

  • Kolonet betyr true og produserer ingen utdata. Omdirigeringsoperatøren > omdirigerer utgangen fra den forrige kommandoen til den gitte filen. filename , filen du vil beskjære.

Hvis filen eksisterer, vil den bli avkortet til null. Ellers vil filen bli opprettet.

I stedet for : kan også bruke en annen kommando som ikke gir utdata.

Her er et eksempel på å bruke kattkommandoen til å sende ut innholdet i /dev/null enheten, som bare returnerer en sluttfil-karakter:

cat /dev/null > filename

En annen kommando som kan brukes er echo . Alternativet -n forteller echo ikke å legge til en ny linje:

echo -n > filename

På de fleste moderne skjell som Bash eller Zsh kan du utelate kommandoen før omdirigeringssymbolet og bruke:

> filename

For å kunne kutte en fil, må du ha skrivetillatelser på filen. Vanligvis vil du bruke sudo til dette, men de forhøyede rotprivilegiene gjelder ikke for omdirigering. Her er et eksempel:

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

Det er flere løsninger som tillater omdirigering med sudo . Det første alternativet kan kjøre et nytt skall med sudo og utføre en kommando i det skallet ved å bruke -c flagget:

sudo sh -c '> filename'

Et annet alternativ er å pipe utdataene til tee kommandoen, heve tee privilegiene med sudo og skrive den tomme utdata til en gitt fil:

: | sudo tee filename

truncate kommando

truncate er et kommandolinjeverktøy som lar deg krympe eller utvide størrelsen på en fil til en gitt størrelse.

Den generelle syntaks for avkorting av filer til null størrelse med avkortningskommandoen, er som følger:

truncate -s 0 filename

Alternativet -s 0 setter filstørrelsen til null.

For å tømme Nginx-tilgangsloggen vil du for eksempel bruke:

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

Tøm alle loggfiler

Over tid kan harddisken bli rotet med mange store loggfiler som tar store mengder diskplass.

Følgende kommando vil tømme filer som slutter med ".log" i katalogen /var/log :

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

Et bedre alternativ ville være å rotere, komprimere og fjerne loggfilene med logrotate .

Konklusjon

For å avkorte en fil i Linux bruker du viderekoblingsoperatøren > etterfulgt av filnavnet.

avkort terminal