5 moduri de a goli sau șterge conținutul unui fișier mare în Linux


Ocazional, în timp ce vă ocupați de fișiere în terminalul Linux, este posibil să doriți să ștergeți conținutul unui fișier fără a-l deschide neapărat folosind vreun editor de linie de comandă Linux. Cum se poate realiza acest lucru? În acest articol, vom parcurge mai multe moduri diferite de a goli conținutul fișierului cu ajutorul unor comenzi utile.

Atenție: înainte de a continua să analizăm diferitele moduri, rețineți că, deoarece în Linux totul este un fișier, trebuie să vă asigurați întotdeauna că fișierul (fișierele) pe care le goliți nu sunt fișiere importante de utilizator sau de sistem. Ștergerea conținutului unui sistem critic sau al fișierului de configurare poate duce la o eroare sau eșec fatală a aplicației/sistemului.

Acestea fiind spuse, mai jos sunt mijloace de ștergere a conținutului fișierului din linia de comandă.

Important: în scopul acestui articol, am folosit fișierul access.log în următoarele exemple.

1. Goliți conținutul fișierului prin redirecționarea către Null

Cel mai simplu mod de a goli sau goli conținutul unui fișier folosind redirecționarea shell null (obiect inexistent) către fișier, după cum urmează:

# > access.log

2. Goliți fișierul folosind redirecționarea comenzii „adevărată”.

Aici vom folosi un simbol : este o comandă încorporată în shell care este echivalentă în esență cu comanda true și poate fi folosită ca o operațiune fără operație (fără operație) .

O altă metodă este redirecționarea comenzii încorporate : sau true către fișier, astfel:

# : > access.log
OR 
# true > access.log

3. Goliți fișierul Folosind utilitarele cat/cp/dd cu /dev/null

În Linux, dispozitivul null este utilizat practic pentru a elimina fluxurile de ieșire nedorite ale unui proces sau, altfel, ca fișier gol potrivit pentru fluxurile de intrare. Acest lucru se face în mod normal prin mecanism de redirecționare.

Și fișierul dispozitivului /dev/null este, prin urmare, un fișier special care șterge (elimină) orice intrare trimisă la acesta sau ieșirea sa este aceeași cu cea a unui fișier gol.

În plus, puteți goli conținutul unui fișier redirecționând ieșirea /dev/null către acesta (fișier) ca intrare folosind comanda cat:

# cat /dev/null > access.log

În continuare, vom folosi comanda cp pentru a goli conținutul unui fișier, așa cum se arată.

# cp /dev/null access.log

În următoarea comandă, if înseamnă fișierul de intrare și of se referă la fișierul de ieșire.

# dd if=/dev/null of=access.log

4. Goliți fișierul folosind comanda echo

Aici, puteți utiliza o comandă echo cu un șir gol și o puteți redirecționa către fișier după cum urmează:

# echo "" > access.log
OR
# echo > access.log

Notă: trebuie să rețineți că un șir gol nu este același lucru cu nul. Un șir este deja un obiect, cu cât ar putea fi gol, în timp ce null înseamnă pur și simplu inexistența unui obiect.

Din acest motiv, atunci când redirecționați comanda out of cat, se tipărește o linie goală (șir gol).

Pentru a trimite o ieșire nulă la fișier, utilizați indicatorul -n care îi spune echo să nu scoată linia nouă care duce la linia goală produsă în comanda anterioară.

# echo -n "" > access.log

5. Goliți fișierul folosind comanda truncate

Comanda truncare ajută la micșorarea sau extinderea dimensiunii unui fișier la o dimensiune definită.

Îl puteți folosi cu opțiunea -s care specifică dimensiunea fișierului. Pentru a goli conținutul unui fișier, utilizați o dimensiune de 0 (zero) ca în următoarea comandă:

# truncate -s 0 access.log

Asta e tot deocamdată, în acest articol am acoperit mai multe metode de ștergere sau golire a conținutului fișierului folosind utilitare simple de linie de comandă și mecanism de redirecționare shell.

Acestea nu sunt probabil singurele modalități practice disponibile de a face acest lucru, așa că ne puteți spune și despre orice alte metode care nu sunt menționate în acest ghid prin secțiunea de feedback de mai jos.