Když spustíte příkaz v příkazu bash, normálně vytiskne výstup tohoto příkazu přímo do terminálu, takže ho 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.

To funguje v bash na jakémkoli operačním systému, od Linuxu a MacOSu až po systém Windows 10 založený na Ubuntu.

Možnost č. 1: Přesměrování výstupu pouze na soubor

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

  •  > 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 to přesměruje "stdout" - standardní výstup, což je obrazovka - do souboru.

Zde je jednoduchý příklad. The ls příkaz 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.

ls > /path/to/file

Nemusíte zadávat 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 ls výstup příkazu. Např cat příkaz vytiskne obsah souboru do terminálu:

cat /path/to/file

Nezapomeňte, že > operátor nahrazuje stávající obsah souboru s výstupem příkazu. Pokud chcete uložit výstup několika příkazů do jediného souboru, použijte >> operátor místo. Například následující příkaz připojí systémové informace k zadanému souboru:

uname -a >> /path/to/file

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 se výstup připojil na konec souboru.

Druhá možnost: Vytisknout výstup normálně a přesměrovat ji do souboru

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

Provedení výstupu příkazu do tee, tisk na obrazovku a uložení do souboru použijte následující syntaxi:

command | tee /path/to/file

Tím se nahradí cokoliv v souboru s výstupem příkazu, stejně jako příkaz > operátor.

Provedení výstupu příkazu do tee , tisk na obrazovku a uložení do souboru, ale připojení na konec souboru:

command | tee -a /path/to/file

To připojí výstup na konec souboru, stejně jako >> 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í.

Nejlepší Tipy:
Komentář: