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 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 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
Î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
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
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 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
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.
.