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

, Author

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 linii de comandă Linux. Cum se poate realiza acest lucru? În acest articol, vom trece în revistă mai multe moduri diferite de a goli conținutul unui fișier cu ajutorul unor comenzi utile.

Atenție: Înainte de a trece la examinarea diferitelor modalități, rețineți că, deoarece în Linux totul este un fișier, trebuie să vă asigurați întotdeauna că fișierul (sau fișierele) pe care îl (le) goliți nu sunt fișiere importante de utilizator sau de sistem. Golirea conținutului unui fișier critic de sistem sau de configurare ar putea duce la o eroare sau la o defecțiune fatală a aplicației/sistemului.

După aceste precizări, mai jos sunt prezentate mijloacele de golire a conținutului fișierelor din linia de comandă.

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

Empty File Content by Redirecting to Null

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

# > access.log
Empty Large File Using Null Redirect in Linux
Empty Large File Using Null Redirect in Linux

Empty File Using ‘true’ Command Redirection

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

O altă metodă este de a redirecționa ieșirea comenzii încorporate : sau true către fișier, astfel:

# : > access.logOR # true > access.log
Fisier mare gol folosind comenzi Linux
Fisier mare gol folosind comenzi Linux

Fisier gol folosind utilitățile cat/cp/dd cu /dev/null

În Linux, dispozitivul null este utilizat în principiu pentru eliminarea fluxurilor de ieșire nedorite ale unui proces, sau ca fișier gol adecvat pentru fluxurile de intrare. Acest lucru se face, în mod normal, prin mecanismul de redirecționare.

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

În mod suplimentar, puteți goli conținutul unui fișier prin redirecționarea ieșirii lui /dev/null către acesta (fișier) ca intrare folosind comanda cat:

# cat /dev/null > access.log
Filier gol folosind comanda cat
Filier gol folosind comanda cat

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

# cp /dev/null access.log
Empty File Content Using cp Command
Empty File Content Using cp Command

Î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
Contenutul fișierului gol folosind comanda dd
Contenutul fișierului gol folosind comanda dd

Filier gol folosind comanda echo

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

# echo "" > access.logOR# echo > access.log
Fileu gol folosind comanda echo
Fileu gol folosind comanda echo

Nota: Trebuie să țineți cont de faptul că un șir gol nu este același lucru cu null. Un șir de caractere este deja un obiect cu atât mai mult cu cât poate fi gol, în timp ce null înseamnă pur și simplu inexistența unui obiect.

Din acest motiv, când redirecționați ieșirea din comanda echo de mai sus în fișier și vizualizați conținutul fișierului folosind comanda cat, este imprimă o linie goală (șir de caractere gol).

Pentru a trimite o ieșire nulă în fișier, folosiți stegulețul -n care îi spune lui echo să nu trimită la ieșire linia nouă de final care duce la linia goală produsă în comanda anterioară.

# echo -n "" > access.log
Filier gol folosind redirecționarea nulă
Filier gol folosind redirecționarea nulă

Filier gol folosind comanda truncate

Comanda truncate ajută la micșorarea sau extinderea dimensiunii unui fișier până la o dimensiune definită.

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

# truncate -s 0 access.log
Truncate File Content in Linux
Truncate File Content in Linux

Asta este tot pentru moment, în acest articol am acoperit mai multe metode de ștergere sau golire a conținutului unui fișier folosind utilitare simple de linie de comandă și un mecanism de redirecționare a shell-ului.

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

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.