Android

Sådan afkortes (tomme) filer i linux

Week 8

Week 8

Indholdsfortegnelse:

Anonim

I nogle situationer kan det være en god idé at afkorte (tømme) en eksisterende fil til en nul-længde. I enkle ord betyder trunkering af en fil fjernelse af filindholdet uden at slette filen.

Det er meget hurtigere og lettere at afkorte en fil end at slette filen, genskabe den og indstille de rigtige tilladelser og ejerskab. Hvis filen åbnes ved en proces, kan fjernelse af filen muligvis forårsage, at programmet, der bruger den, fungerer korrekt.

Denne tutorial forklarer, hvordan man trunkerer filer til nulstørrelse i Linux-systemer ved hjælp af shell omdirigering og truncate .

Shell omdirigering

Den nemmeste og mest anvendte metode til at beskære filer er at bruge operatøren > shell omdirigering.

Det generelle format til afkortning af filer ved hjælp af omdirigering er:

: > filename

Lad os nedbryde kommandoen:

  • Kolon betyder true og producerer ingen output. Omdirigeringsoperatøren > omdirigerer output fra den foregående kommando til den givne fil. filename , den fil, du vil beskære.

Hvis filen findes, vil den blive afkortet til nul. Ellers oprettes filen.

I stedet for : kan også bruge en anden kommando, der ikke producerer noget output.

Her er et eksempel på at bruge kommandoen cat til at udsende indholdet af /dev/null enheden, der kun returnerer et slut-på-filtegn:

cat /dev/null > filename

En anden kommando, der kan bruges, er echo . Indstillingen -n fortæller echo ikke tilføje en ny linje:

echo -n > filename

På de fleste moderne skaller som Bash eller Zsh kan du udelade kommandoen før omdirigeringssymbolet og bruge:

> filename

For at være i stand til at beskære en fil, skal du have skrivetilladelser på filen. Normalt vil du bruge sudo til dette, men de hævede rodprivilegier gælder ikke for omdirigering. Her er et eksempel:

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

Der er flere løsninger, der tillader omdirigering med sudo . Den første mulighed kan køre en ny skal med sudo og udføre en kommando inde i denne skal ved hjælp af -c flag:

sudo sh -c '> filename'

En anden mulighed er at føre output til tee kommandoen, hæve tee privilegierne med sudo og skrive den tomme output til en given fil:

: | sudo tee filename

truncate kommando

truncate er et kommandolinjeværktøj, der giver dig mulighed for at skrumpe eller udvide størrelsen på en fil til en given størrelse.

Den generelle syntaks til afkortning af filer til nulstørrelse med den truncate kommando er som følger:

truncate -s 0 filename

Indstillingen -s 0 indstiller filstørrelsen til nul.

For at tømme Nginx-adgangsloggen, ville du f.eks. Bruge:

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

Tøm alle logfiler

Over tid kan dit diskdrev blive rodet med en masse store logfiler, der optager store mængder diskplads.

Den følgende kommando tømmer filer, der slutter med “.log” under biblioteket /var/log :

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

En bedre mulighed ville være at rotere, komprimere og fjerne logfilerne med logrotate værktøjet.

Konklusion

For at beskære en fil i Linux skal du bruge omdirigeringsoperatøren > efterfulgt af filnavnet.

afkort terminal