4Sep

Kako shraniti izhod ukaza v datoteko v Bash( aka Linux in MacOS terminal)

click fraud protection

Ko zaženete ukaz pri pozivu bash, običajno natisne izhod tega ukaza neposredno na terminal, tako da ga lahko takoj preberete. Toda bash vam omogoča tudi, da "preusmerite" izhod katerega koli ukaza, tako da ga shranite v besedilno datoteko, da boste kasneje lahko pregledali izhod.

To deluje v bash na katerem koli operacijskem sistemu, od Linuxa in MacOS do Windows 10 v Ubuntu baznem okolju.

Možnost ena: Preusmeritev izhoda samo na datoteko

Če želite uporabiti preusmeritev bash, zaženite ukaz, podajte & gt;ali & gt;operaterja, nato pa zagotovite pot datoteke, ki jo želite preusmeriti na izhod.

  • & gt;preusmeri izhod ukaza v datoteko in nadomešča obstoječo vsebino datoteke.
  • >preusmeri izhod ukaza v datoteko, tako da dodaja izhod v obstoječo vsebino datoteke.

Tehnično ta preusmeri "stdout" - standardni izhod, ki je zaslon-v datoteko.

Tukaj je preprost primer. Ukaz ls navaja datoteke in mape v trenutnem imeniku. Torej.ko zaženete naslednji ukaz, bo v trenutnem imeniku seznam datotek in map. Vendar jih ne bo natisnil na zaslon - shranil jih bo v datoteko, ki jo določite.

instagram viewer

ls & gt;/path/to/ datoteka

Ni vam treba določiti poti do obstoječe datoteke. Določite vsako veljavno pot in bash ustvarite datoteko na tej lokaciji.

Če si ogledate vsebino datoteke, boste videli izhod ls ukaza. Na primer, ukaz cat prikazuje vsebino datoteke na terminal:

cat /path/to/ datoteka

Ne pozabite, da & gt;operater zamenja obstoječo vsebino datoteke z izhodom ukaza.Če želite izvesti več ukazov v eno datoteko, uporabite & gt; & gt;namesto tega. Na primer, naslednji ukaz bo dodal sistemske podatke v datoteko, ki jo določite:

uname -a & gt; & gt;/path/to/ datoteka

Če datoteka še ne obstaja, bo bash ustvaril datoteko. V nasprotnem primeru bo bash zapustil obstoječo vsebino datoteke in dodal izhod na konec datoteke.

Ko si ogledate vsebino datoteke, boste videli, da so bili rezultati vašega drugega ukaza dodani na konec datoteke:

Ta proces lahko ponovite tolikokrat, kolikor želite ohraniti dodajanje izhodov do konca datoteke.mapa.

Možnost dve: natisni izhod Normalno in ga preusmeri v datoteko

Morda ne želite preusmeriti izpisa s & gt;ali & gt;operaterjev, saj ne boste videli izhodnega ukaza v terminalu. Za to je ukaz tee. Ukaz tee natisne vhod, ki ga prejme na zaslon , in hkrati shrani v datoteko.

Če želite izvesti ukaz ukaza na čevelj, ga natisniti na svoj zaslon in ga shraniti v datoteko, uporabite naslednjo sintakso: ukaz

|tee /path/to/ datoteka

To bo vse v datoteki nadomestilo z izhodom ukaza, tako kot & gt;operaterja.

Za izhod iz ukaza na tee, tiskanje na zaslon in shranjevanje v datoteko, vendar dodajanje do konca datoteke: ukaz

|tee -a /path/to/ datoteka

To bo dodalo izhod na konec datoteke, tako kot & gt; & gt;operaterja.

Bash lupina vključuje nekatere dodatne, napredne operaterje, ki izvajajo podobne funkcije. Posebej bodo uporabne, če pišete bash skripte. Za podrobnejše informacije se obrnite na poglavje preusmerjanja I / O v priročniku Advanced Bash-Scripting Guide.