4Sep

Jak uložit výstup příkazu do souboru v Bash( alias terminálu Linux a MacOS)

click fraud protection

Když spustíte příkaz v příkazu bash, normálně vytiskne výstup tohoto příkazu přímo do terminálu, takže jej můžete ihned přečíst. Ale bash také umožňuje "přesměrovat" výstup libovolného příkazu a uložit jej do textového souboru, abyste mohli později přezkoumat výstup.

Toto funguje v bash na libovolném operačním systému, od Linuxu a MacOSu až po prostředí bash Windows Ubuntu.

Možnost jedna: Přesměrování výstupu do souboru pouze

Chcete-li použít přesměrování bash, spusťte příkaz, zadejte příkaz & gt;nebo>operátor a poté zadejte cestu souboru, na který chcete přesměrovat výstup.

  • & gt;přesměruje výstup příkazu do souboru a nahrazuje stávající obsah souboru.
  • >přesměruje výstup příkazu do souboru a připojuje výstup k existujícímu obsahu souboru.

Technicky přesměruje "stdout" - standardní výstup, což je obrazovka - do souboru.

Zde je jednoduchý příklad. Příkaz ls uvádí seznam souborů a složek v aktuálním adresáři. Tak.při spuštění následujícího příkazu ls zobrazí seznam souborů a složek v aktuálním adresáři. Nevytiskne je však na obrazovku - uloží je do zadaného souboru.

instagram viewer

ls>Soubor /path/to/

Není nutné zadat cestu k existujícímu souboru. Určete jakoukoli platnou cestu a bash vytvoří soubor na daném místě.

Pokud zobrazíte obsah souboru, uvidíte výstup příkazu ls. Příkaz cat například vytiskne obsah souboru do terminálu:

cat /path/to/ file

Nezapomeňte, & gt;operátor nahrazuje stávající obsah souboru s výstupem příkazu. Chcete-li uložit výstup několika příkazů do jednoho souboru, použijete & gt; & gt;operátor místo. Například následující příkaz připojí systémové informace k zadanému souboru:

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

Pokud soubor dosud neexistuje, soubor bash vytvoří soubor. V opačném případě bude bash ponechat samotný obsah souboru a připojit výstup na konec souboru.

Při zobrazení obsahu souboru uvidíte výsledky druhého příkazu, které byly připojeny ke konci souboru:

Tento proces můžete opakovat tolikrát, kolik chcete, aby nepřidával výstup na konec souborusoubor.

Druhá možnost: Normálně tisknout výstup a přesměrovat jej do souboru

Možná nebudete chtít přesměrovat výstup pomocí příkazu & gt;nebo>operátory, protože neuvidíte výstup příkazu v terminálu. To je to, co má tee příkaz. Příkaz tee vytiskne vstup, který obdrží, na obrazovku a ji uloží současně do souboru.

Chcete-li potrubí výstupu příkazu vytáhnout, vytisknout jej na obrazovku a uložit jej do souboru, použijte následující syntaxi: příkaz

|tee /path/to/ file

Nahradí cokoliv v souboru s výstupem příkazu, stejně jako & gt;operátor.

Chcete-li provést výstup příkazu k odpalování, tisknout na obrazovku a uložit ji do souboru, ale připojit jej na konec souboru: příkaz

|tee -a /path/to/ soubor

Přidá výstup na konec souboru, stejně jako & gt; & gt;operátor.

Bash shell obsahuje některé další pokročilé operátory, které mají podobné funkce. Bude to užitečné zejména pokud píšete bash skripty. Podrobnější informace naleznete v kapitole Přesměrování I / O v Pokročilé příručce Bash-skriptování.