Kā saglabāt komandas izvadi failā Bash (aka Linux un macOS termināls)
Kad palaižat komandu bash uzvednē, tā parasti izdrukā šīs komandas izvadi tieši terminālim, lai jūs varētu to nekavējoties izlasīt. Bet bash arī ļauj jums “novirzīt” jebkuras komandas izvadi, saglabājot to teksta failā, lai vēlāk varētu pārskatīt izeju.
Tas darbojas bash jebkurā operētājsistēmā, no Linux un MacOS uz Windows 10 Ubuntu bāzes bash vidi.
Pirmā iespēja: novirzīt izvadi tikai uz failu
Lai izmantotu bash novirzīšanu, palaižat komandu, norādiet >
vai >>
operatoram, un pēc tam norādiet faila ceļu, uz kuru vēlaties novirzīt izeju.
-
>
novirza komandas izvadi uz failu, aizstājot esošu faila saturu. -
>>
novirza komandas izvadi uz failu, pievienojot izeju esošajam faila saturam.
Tehniski tas novirza “stdout” - standarta izeju, kas ir faila ekrāns.
Šeit ir vienkāršs piemērs. The ls
komanda saraksta failus un mapes pašreizējā direktorijā. Tātad. palaižot šādu komandu, ls
sarakstā esošos failus un mapes. Bet tas netiks izdrukāts uz ekrāna - tas tos saglabās jūsu norādītajā failā.
ls> / ceļš / uz / failu
Jums nav jānorāda ceļš uz esošo failu. Norādiet jebkuru derīgu ceļu un bash izveidos failu šajā vietā.
Ja redzat faila saturu, jūs redzēsiet ls
komandas izeja. Piemēram, kaķis
komanda izdrukā faila saturu terminālim:
kaķis / ceļš / uz / failu
Atcerieties, ka
operators aizstāj esošo faila saturu ar komandas izeju. Ja vēlaties saglabāt vairāku komandu izvadi uz vienu failu, izmantojiet >
vietā. Piemēram, šāda komanda pievienos sistēmas informāciju jūsu norādītajam failam:>>
uname -a >> / ceļš / uz / fails
Ja fails vēl nav, bash izveidos failu. Pretējā gadījumā bash atstās esošā faila saturu tikai un pievienos izeju faila beigās.
Skatoties faila saturu, redzēsit otrās komandas rezultātus faila beigās:
Šo procesu var atkārtot tik daudz reižu, cik vēlaties, lai pievienotu izeju faila beigām.
Otrā iespēja: izdrukāt izvadi normāli un novirzīt to uz failu
Iespējams, nepatīk izvadīt izeju ar >
vai >>
operatoriem, jo jūs neredzēsiet komandas izvadi terminālī. Tieši to tee
komanda ir paredzēta. Komanda komandu izdrukā ievadīto informāciju uz ekrānu un vienlaicīgi saglabā to failā.
Lai izvadītu komandas izeju uz tee
, drukājot to ekrānā un saglabājot to failā, izmantojiet šādu sintaksi:
komandu tee / ceļš / uz / failu
Tas aizvietos kaut ko failā ar komandas izeju, tāpat kā >
operatoram.
Lai izvadītu komandas izeju uz tee
, drukājot uz ekrānu un saglabājot to failā, bet pievienojot to faila beigām:
komandu tee -a / ceļš / uz / fails
Tas pievienos izeju faila beigām, tāpat kā >>
operatoram.
Bash apvalks ietver dažus papildu uzlabotus operatorus, kas veic līdzīgas funkcijas. Tie būs īpaši noderīgi, ja rakstāt bash skriptus. Lai iegūtu detalizētāku informāciju, skatiet sadaļu I / O pārvirzīšanas sadaļa Advanced Bash-Scripting Guide.