Android

Cum să truncheați (goli) fișierele în linux

Installing linux in virtualbox

Installing linux in virtualbox

Cuprins:

Anonim

În unele situații, poate doriți să trunecați (gol) un fișier existent la o lungime zero. În cuvinte simple, trunchierea unui fișier înseamnă eliminarea conținutului fișierului fără a șterge fișierul.

Trunchierea unui fișier este mult mai rapidă și mai ușoară decât ștergerea fișierului, recrearea lui și setarea permisiunilor și proprietății corecte. De asemenea, dacă fișierul este deschis printr-un proces, eliminarea fișierului poate provoca defecțiuni ale programului care îl folosește.

Acest tutorial explică modul de trunchiere a fișierelor la dimensiuni zero în sistemele Linux, folosind redirecționarea shell-ului și comanda truncate .

Redirecționarea cochiliei

Cea mai simplă și mai utilizată metodă pentru a trunca fișiere este de a utiliza operatorul de redirecționare > shell.

Formatul general pentru trunchierea fișierelor prin redirecționare este:

: > filename

Haideți să descompunem comanda:

  • : Colon înseamnă true și nu produce ieșire. Operatorul de redirecționare > redirecționează ieșirea comenzii precedente către fișierul dat. filename , fișierul pe care doriți să îl truncați.

Dacă fișierul există, acesta va fi trunchiat la zero. În caz contrar, fișierul va fi creat.

În loc de : poate utiliza, de asemenea, o altă comandă care nu produce nici o ieșire.

Iată un exemplu de utilizare a comenzii cat pentru a ieși conținutul dispozitivului /dev/null , care returnează doar un caracter de final de fișier:

cat /dev/null > filename

O altă comandă care poate fi utilizată este echo . Opțiunea -n spune echo nu adăuga o linie nouă:

echo -n > filename

Pe cele mai multe shell-uri moderne, cum ar fi Bash sau Zsh, puteți omite comanda înainte de simbolul redirecției și utilizați:

> filename

Pentru a putea trunca un fișier, trebuie să aveți permisiuni de scriere în fișier. De obicei, utilizați sudo pentru asta, dar privilegiile rădăcinoase crescute nu se aplică redirecției. Iată un exemplu:

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

Există mai multe soluții care permit redirecționarea cu sudo . Prima opțiune poate rula un shell nou cu sudo și executa o comandă în interiorul acelui shell utilizând steagul -c :

sudo sh -c '> filename'

O altă opțiune este să conectați ieșirea la comanda tee , să tee privilegiile tee cu sudo și să scrieți ieșirea goală într-un fișier dat:

: | sudo tee filename

truncate Command

truncate este o utilitate pentru linia de comandă care vă permite să micșorați sau să extindeți dimensiunea unui fișier la o dimensiune dată.

Sintaxa generală pentru trunchierea fișierelor la dimensiunea zero cu comanda truncate este următoarea:

truncate -s 0 filename

Opțiunea -s 0 stabilește dimensiunea fișierului la zero.

De exemplu, pentru a goli jurnalul de acces Nginx, ați folosi:

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

Goliți toate fișierele de jurnal

În timp, unitatea de disc se poate înghesui cu o mulțime de fișiere jurnal mari ocupând o cantitate mare de spațiu pe disc.

Următoarea comandă va goli fișierele care se termină cu „.log” din directorul /var/log :

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

O opțiune mai bună ar fi să rotiți, să comprimați și să eliminați fișierele de jurnal cu instrumentul logrotate .

Concluzie

Pentru a trunca un fișier în Linux, folosiți operatorul de redirecționare > urmat de numele fișierului.

terminalul trunchiat