Pagina principala » HOWTO » Cum se salvează rezultatul unei comenzi într-un fișier din Bash (așa cum este Terminalul Linux și MacOS)

    Cum se salvează rezultatul unei comenzi într-un fișier din Bash (așa cum este Terminalul Linux și MacOS)

    Când rulați o comandă la promptul bash, în mod normal, aceasta imprimă ieșirea acelei comenzi direct la terminal, astfel încât să o 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, astfel încât să puteți revedea rezultatele mai târziu.

    Acest lucru funcționează în bash pe orice sistem de operare, de la Linux și MacOS la Windows 10 bazate pe Ubuntu bash mediu.

    Opțiunea unu: redirecționați ieșirea la un fișier numai

    Pentru a utiliza redirecționarea bash, executați o comandă, specificați > sau >> operatorul și apoi furnizați calea unui fișier în care doriți redirecționarea ieșirii.

    •  > redirectează ieșirea unei comenzi unui fișier, înlocuind conținutul existent al fișierului.
    •  >> redirectează ieșirea unei comenzi într-un fișier, adăugând ieșirea la conținutul existent al fișierului.

    Din punct de vedere tehnic, aceasta redirecționează "stdout" - ieșirea standard, care este ecranul - la un fișier.

    Iată un exemplu simplu. ls comandă listează fișierele și folderele din directorul curent. Asa de. când executați următoarea comandă, ls va lista 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> / path / to / file

    Nu trebuie 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 ls comandă. De exemplu, pisică comanda imprimă conținutul unui fișier la terminal:

    pisică / cale / către / fișier

    Amintiți-vă, >  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, utilizați >> operator. De exemplu, următoarea comandă va adăuga informații de sistem la fișierul pe care îl specificați:

    uname -a >> / calea / către / fișierul

    Dacă fișierul nu există deja, bash va crea fișierul. Altfel, 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 adăugate la sfârșitul fișierului:

    Puteți repeta acest proces de câte ori doriți să continuați să adăugați ieșire la sfârșitul fișierului.

    A doua opțiune: Imprimați ieșirea în mod normal și redirecționați-o către un fișier

    Este posibil să nu vă placă redirecționarea ieșirii cu > sau >> operatori, deoarece nu veți vedea ieșirea comenzii în terminal. Asta e ceea ce reper comanda este pentru. Comanda tee imprimă intrarea pe care o primește pe ecran și o salvează simultan într-un fișier.

    Pentru a conduce ieșirea unei comenzi la reper, tipăriți-l pe ecran și salvându-l într-un fișier, utilizați următoarea sintaxă:

    comandă | tee / path / to / fișier

    Acest lucru va înlocui orice din fișierul cu ieșirea comenzii, la fel ca și > operator.

    Pentru a conduce ieșirea unei comenzi la reper , tipăriți pe ecranul dvs. și salvați-l într-un fișier, dar adăugați-l la sfârșitul fișierului:

    comandă | tee -a / path / to / fișier

    Aceasta va adăuga ieșirea la sfârșitul fișierului, la fel ca și >> operator.

    Cochilia bash include unii operatori suplimentari, avansați care execută funcții similare. Vor fi deosebit de utile dacă scriem scripturi bash. Consultați capitolul de redirecționare I / O din Ghidul avansat de scriere bash-script pentru informații mai detaliate.