4Sep
Când rulați o comandă la promptul bash, acesta tipărește în mod normal ieșirea acelei comenzi direct la terminal, astfel încât să puteți citi imediat. Dar bash vă permite, de asemenea, să "redirecționați" ieșirea oricărei comenzi, salvând-o într-un fișier text pentru a putea revizui ulterior output-ul.
Acest lucru funcționează în bash pe orice sistem de operare, de la Linux și MacOS la Windows 10 bazate pe Ubuntu bash de mediu.
Opțiunea 1: Redirecționarea ieșirii la un fișier numai
Pentru a utiliza redirecționarea bash, executați o comandă, specificați & gt;sau>operator și apoi furnizați calea unui fișier în care doriți redirecționarea ieșirii.
- & gt;redirectează ieșirea unei comenzi unui fișier, înlocuind conținutul existent al fișierului.
- & gt;redirectează ieșirea unei comenzi unui fișier, adăugând ieșirea la conținutul existent al fișierului.
Tehnic, aceasta redirecționează "stdout" - ieșirea standard, care este ecranul - la un fișier.
Iată un exemplu simplu. Comanda ls afișează fișierele și folderele din directorul curent. Asa de.când executați următoarea comandă, ls va afișa fișierele și folderele din directorul curent. Dar nu le va imprima pe ecran - le va salva în fișierul pe care îl specificați.
ls>Fișierul /path/to/Nu este necesar să specificați calea către un fișier existent. Specificați orice cale validă și bash va crea un fișier în acea locație.
Dacă vizualizați conținutul fișierului, veți vedea ieșirea comenzii ls. De exemplu, comanda cat imprimă conținutul unui fișier pe terminal:
cat /path/to/ fileAmintiți-vă că & gt;operatorul înlocuiește conținutul existent al fișierului cu ieșirea comenzii. Dacă doriți să salvați ieșirea din mai multe comenzi într-un singur fișier, ați folosi & gt; & gt;operator. De exemplu, următoarea comandă va adăuga informații de sistem la fișierul pe care îl specificați:
uname -a & gt; & gt;Fișierul /path/to/Dacă fișierul nu există deja, bash va crea fișierul.În caz contrar, bash va lăsa numai conținutul existent al fișierului și va adăuga ieșirea la sfârșitul fișierului.
Când vizualizați conținutul fișierului, veți vedea că rezultatele celei de a doua comenzi au fost atașate la sfârșitul fișierului:
Puteți repeta acest proces de câte ori doriți să păstrați adăugarea ieșirii la sfârșitul fișieruluifişier.
Opțiunea 2: Imprimați în mod obișnuit ieșirea și redirecționați-o către un fișier
Este posibil să nu vă plac redirecționarea ieșirii cu & gt;sau>operatori, deoarece nu veți vedea ieșirea comenzii în terminal. Pentru asta este vorba de comandă pentru tee. Comanda tee imprimă intrarea pe care o primește pe ecranul , iar o salvează simultan într-un fișier.
Pentru a conduce ieșirea unei comenzi pentru a tee, a le tipări pe ecran și a le salva într-un fișier, folosește următoarea sintaxă: comanda
|tee /path/to/ fișierAcest lucru va înlocui orice din fișierul cu ieșirea comenzii, la fel ca & gt;operator.
Pentru a conduce ieșirea unei comenzi pentru a tee, tipăriți pe ecran și salvați-o într-un fișier, dar adăugați-o la sfârșitul fișierului:
command |tee - un fișier /path/to/Acesta va adăuga ieșirea la sfârșitul fișierului, la fel ca & gt; & gt;operator.
Învelișul bash include și alți operatori suplimentari, avansați, care efectuează funcții similare. Vor fi deosebit de utile dacă scrii scripturi bash. Consultați capitolul de redirecționare I / O din Ghidul avansat de bash-scripting pentru informații mai detaliate.