Kaip išsaugoti komandų išvestį į failą „Bash“ (dar žinomas kaip „Linux“ ir „MacOS“ terminalas)
Kai paleidžiate komandą „bash“ eilutėje, ji paprastai spausdina tos komandos išvestį tiesiai į terminalą, kad galėtumėte jį nedelsiant perskaityti. Tačiau „bash“ taip pat leidžia „peradresuoti“ bet kurios komandos išvestį, įrašydama ją į tekstinį failą, kad vėliau galėtumėte peržiūrėti išvestį.
Tai veikia bash bet kurioje operacinėje sistemoje, nuo „Linux“ ir „MacOS“ iki „Windows 10“ „Ubuntu“ pagrįstos „bash“ aplinkos.
Pirmasis variantas: peradresuoti išvestį tik į failą
Norėdami naudoti „bash“ peradresavimą, paleidžiate komandą, nurodykite >
arba >>
operatorius, ir tada nurodykite failo kelią, į kurį norite nukreipti išvestį.
-
>
nukreipia komandos komandą į failą, pakeičiant esamą failo turinį. -
>>
nukreipia komandos komandą į failą, pridedant išvestį prie esamo failo turinio.
Techniškai tai peradresuoja „stdout“ - standartinę išvestį, kuri yra ekrano failas.
Štai paprastas pavyzdys. The ls
komanda nurodo failus ir aplankus dabartiniame kataloge. Taigi. kai paleidžiate šią komandą, ls
bus įtraukti failai ir aplankai dabartiniame kataloge. Tačiau ji nebus spausdinama į ekraną - ji juos išsaugos jūsų nurodytame faile.
ls> / kelias / į failą
Neturite nurodyti esamo failo kelio. Nurodykite bet kokį galiojantį kelią ir bash sukurs failą toje vietoje.
Jei peržiūrėsite failo turinį, pamatysite ls
komandų produkcija. Pavyzdžiui, katė
komanda spausdina failo turinį į terminalą:
katė / kelias / į / failą
Atminkite, kad
operatorius pakeičia esamą failo turinį su komandos išvestimi. Jei norite išsaugoti kelių komandų išvestį į vieną failą, naudokite >
vietoj operatoriaus. Pvz., Ši komanda pridės sistemos informaciją į jūsų nurodytą failą:>>
uname -a >> / kelias / į / failą
Jei failas dar neegzistuoja, failas bus sukurtas. Priešingu atveju, bash paliks esamą failo turinį ir pridės išvestį prie failo pabaigos.
Peržiūrėdami failo turinį pamatysite, kad antrojo komandos rezultatai buvo pridėti prie failo pabaigos:
Šį procesą galite pakartoti tiek kartų, kiek norite, kad pridėtumėte išvestį prie failo pabaigos.
Antroji parinktis: įprastai spausdinkite išvestį ir nukreipkite jį į failą
Galbūt jums nepatinka peradresuoti išvestį >
arba >>
operatoriai, nes negalite matyti komandos išvesties terminale. Štai ką tee
komanda yra skirta. „Komandų“ komanda išspausdina įvestą informaciją į ekraną ir vienu metu išsaugo jį į failą.
Perkelti komandos komandą į tee
, spausdindami jį į ekraną ir įrašydami jį į failą, naudokite šią sintaksę:
komanda tee / kelias / į / failą
Tai pakeis ką nors faile su komandos išvestimi, kaip ir >
operatorius.
Perkelti komandos komandą į tee
, spausdinimas į ekraną ir įrašymas į failą, bet pridedamas prie failo pabaigos:
komanda tee -a / kelias / į / failą
Tai prideda išvestį prie failo pabaigos, kaip ir >>
operatorius.
„Bash“ korpuse yra keletas papildomų pažangių operatorių, kurie atlieka panašias funkcijas. Jie bus ypač naudingi, jei rašote „bash“ scenarijus. Išsamesnės informacijos ieškokite I / O peradresavimo skyriuje, esančiame Išplėstinio skambučių scenarijaus vadove.