
/dev/null). Vom acoperi:
- Crearea mediului de lucru
- Overwrite vs append (
>vs>>) - Redirecționarea erorilor (stderr)
- Redirecționarea separată a stdout și stderr
- Suprimarea output-ului cu
/dev/null - Pipe-uri (
|) pentru a conecta comenzi teepentru a scrie simultan la fișier și la terminal
1. Pregătirea mediului
Schimbăm utilizatorul înroot (de exemplu sudo -i) și creăm un director pentru demonstrație:
2. Overwrite vs Append: > și >>
Demonstrăm diferența dintre suprascriere (>) și adăugare la sfârșit (>>):
>suprascrie fișierul: după a doua utilizare cu>,session.logconține doar “Session Start”.>>adaugă la sfârșitul fișierului, păstrând conținutul anterior.
Atenție:
> va suprascrie fișiere existente fără avertisment. Verificați întotdeauna că nu pierdeți date importante înainte de a rula comenzi cu >.3. Redirecționarea erorilor (stderr)
Mesajele de eroare sunt trimise pe descriptorul2 (stderr). Exemplu: listarea unui fișier inexistent produce o eroare pe stderr.
2>suprascrie fișierulerror.2>>adaugă la sfârșitul fișieruluierror.1>sau implicitul (fără1>) redirecționează stdout;2>afectează stderr.
4. Redirect stdout și stderr în fișiere diferite
Puteți redirecționa stdout și stderr în fișiere separate. Exemplu cufind:
5. Suprimarea output-ului cu /dev/null
Dacă vrei să ignori output-ul, poți redirecționa la/dev/null — efectiv arunci datele.
Redirecționarea către
/dev/null elimină outputul. Exemplu: command > /dev/null 2>&1 trimite atât stdout cât și stderr către /dev/null, suprimând tot outputul comenzii.command > /dev/null— suprimă stdoutcommand 2> /dev/null— suprimă stderrcommand > /dev/null 2>&1— suprimă ambele (stdout și stderr)
6. Pipe-uri (|) — conectarea comenzilor
Pipe-urile trimit stdout-ul unei comenzi ca stdin pentru o altă comandă. Sunt foarte utile pentru filtrare și prelucrare în lanț.
Exemplu: găsim rândurile cu student în /etc/passwd și apoi numărăm liniile/word/bytes cu wc:
cat /etc/passwd | grep studentafișează liniile care conținstudent.| wcarată numărul de linii, cuvinte și octeți (în exemplu: 1 linie, 1 cuvânt, 52 octeți).
7. tee — scrie simultan la fișier și la terminal
Dacă vrei să vezi outputul în terminal și în același timp să îl salvezi într-un fișier, folosește tee. Implicit tee suprascrie fișierul; cu -a faci append.
tee output_echo— suprascrieoutput_echo.tee -a output_echo— adaugă la sfârșitul fișierului (append).
8. Rezumat rapid: operatori de redirecționare
Resurse și referințe
- Tutorial Linux: Input/Output Redirection and Pipes
- Bash Reference Manual — Redirections
- Using tee to write to stdout and files
tee, puteți construi fluxuri de lucru robuste pentru logging, procesare batch și automatizare. Mult succes la exersat!