Všichni víme, jak spuštění příkazu v příkazovém řádku Debianu, Terminálu, vede ke spuštění příkazu a vytištění výsledků, pokud existují, v samotném Terminálu. Někdy toto okamžité zobrazení výstupu nestačí, zvláště pokud chceme výstup uložit pro pozdější použití. Naštěstí je bash Linuxu a bash všech operačních systémů vybaven možností vytisknout výstup příkazu do zadaného souboru. V tomto článku budeme pracovat na následujících dvou scénářích:
- Uložení výstupu příkazu do souboru
- Tisk výstupu v terminálu a jeho uložení do souboru
Příkazy a procedury uvedené v tomto článku jsme spustili na systému Debian 11 Bullseye.
Uložení výstupu příkazu do souboru
Uvedeme několik příkladů, kde bude výstup příkazů uložen pod názvem souboru, který určíme.
Chcete-li otevřít Terminál, přejděte do vyhledávání spouštěče aplikací pomocí klávesy Super/Windows a poté vyhledejte Terminál následovně:
Vytvořit nový soubor/nahradit existující soubor
Pokud chcete uložit výstup příkazu do nového souboru nebo nahradit obsah již existujícího souboru výstupem příkazu, použijte prosím následující syntaxi:
$ [command]> [/filelocation/filename]
Například použiji příkaz lscpu (který zobrazuje systémové informace) a poté vytisknu jeho obsah do souboru s názvem systeminformation.txt. Tento soubor již v mém systému neexistuje.
$ lscpu > /home/sana/systeminformation.txt
Když přistupuji k tomuto souboru přes správce souborů, vypadá to takto:
Připojit výstup k již existujícímu souboru
Pokud chcete uložit výstup linuxového příkazu do souboru, aniž byste se zabývali jeho již existujícím obsahem, můžete použít následující syntaxi:
$ [příkaz]>> [/umístění souboru/název souboru]
Například následující příkaz připojí výsledek příkazu ls na konec mého již existujícího souboru systeminformation.txt.
$ ls >> /home/sana/systeminformation.txt
Následující soubor, který kdysi obsahoval pouze moje systémové informace, nyní obsahuje také výstup příkazu my ls:
Tisk výstupu na terminálu a jeho uložení do souboru
Možná jste si všimli, že příkazy, které jsme zmínili výše, pouze ukládají výstup do souboru, aniž by je tiskly na samotném terminálu. Pokud chcete zobrazit výstup příkazu také na terminálu, použijte následující syntaxi:
$ [příkaz] | tee [/umístění souboru/název souboru]
Například text, který chceme echo na následujícím obrázku, bude nyní echoován na Terminálu a také vytištěn do souboru myfile.txt.
$ echo "print this text to my file" | tee /home/sana/myfile.txt
Toto je obsah souboru generovaného příkazem:
Pokud chcete připojit výstup příkazu k již existujícímu souboru. Postupujte podle této syntaxe:
$ [příkaz] | tee -a [/umístění souboru/název souboru]
Například následující obrázek ukazuje, jak bude ozvěna ještě nějaký text a poté přidán do mého již existujícího souboru:
$ echo "here is some more text for printing" | tee -a /home/sana/myfile.txt
Takto soubor nyní vypadá:
Tyto textové soubory orientované na výstup, které jsme vygenerovali prostřednictvím tohoto článku, mohou být v některých případech mnohem užitečnější než obvyklý tisk výstupu na terminálu. Tak mocný je bash Debianu!