V libovolném operačním systému uživatelé pracují s datovými soubory a provádějí operace jako je vytváření nových, mazání nepotřebných nebo prohlížení obsahu existujících souborů. V Linuxu to funguje obdobně.
Ačkoli v Linuxu existuje možnost pracovat se soubory za použití grafického rozhraní, mnoho uživatelů upřednostňuje interakci s operačním systémem pomocí terminálu.
Linux nabízí specializované příkazy, které uživatelům dovolují pracovat se soubory přímo z terminálového okna. Jedním z takových příkazů je například příkaz cat
.
Podle manuálových stránek Linuxu, příkaz cat
slouží ke spojování obsahu souborů a jeho následnému výpisu na standardní výstup. Manuálové stránky Linuxu jsou dokumentační soubory, které mají uživatelům usnadnit pochopení linuxových příkazů a jejich používání.
Pro zobrazení manuálové stránky jakéhokoli příkazu v Linuxu, stačí zadat příkaz man
a za něj název příkazu. Pokud si například chcete prohlédnout manuálové stránky pro příkaz cat
, zadejte do terminálu:
man cat
K čemu se příkaz cat používá?
Jak už bylo zmíněno, příkaz cat
se využívá k zobrazení obsahu souboru na obrazovce. Další jeho funkcí je spojování obsahu více souborů a jejich následný výstup. Pokud tedy příkazu cat
poskytnete více souborů, spojí jejich obsah a zobrazí ho na obrazovce.
Jednoduše řečeno, příkaz cat
sloučí obsah několika souborů a zobrazí jej. Při této operaci ale nevzniká žádný nový soubor a původní soubory zůstávají nezměněny.
Příkaz cat
se také používá v kontextu přesměrování. Přesměrování umožňuje uživatelům změnit zdroj standardního vstupu a cíl standardního výstupu a chybového výstupu. Standardní vstup, výstup a chybový výstup jsou standardní kanály, které se používají pro komunikaci v Linuxu.
Standardně je standardním vstupem klávesnice a standardní výstup a chybový výstup se zobrazují na obrazovce.
Přesměrování tedy umožňuje, abychom místo vstupu z klávesnice (což je standard), přesměrovali vstup ze souboru nebo jiného zdroje.
Co se týká standardního výstupu a chybového výstupu, které se standardně zobrazují na obrazovce, pomocí přesměrování můžeme tento výstup zapsat do souboru.
Syntaxe příkazu cat
Základní syntaxe příkazu cat
vypadá takto:
cat [VOLBA]... [SOUBOR]...
V manuálových stránkách Linuxu jsou všechny výrazy v hranatých závorkách volitelné. V uvedené syntaxi tedy příkaz cat
nemusí mít jako argumenty ani volbu (OPTION
), ani název souboru (FILE
). Může obsahovat obojí, pouze jedno z nich, nebo dokonce ani jedno.
Tři tečky (...
) naznačují, že je povoleno použít jeden nebo více předchozích operandů nebo argumentů. Příkaz cat
tedy může obsahovat jednu nebo více voleb nebo jmen souborů.
FILE
představuje jména souborů, jejichž obsah chceme pomocí cat
spojit a zobrazit. OPTION
reprezentuje volitelné parametry, které se dají přidat k příkazu cat
a upravují jeho chování. Některé volby, které lze použít s příkazem cat
, jsou uvedeny níže:
Příkaz cat
funguje tak, že vezme soubory, které mu byly předány, a jejich obsah pošle na standardní výstup, což je terminálové okno. Pokud je předáno více souborů, jejich obsah se spojí a následně se zobrazí v terminálu.
Chování příkazu cat
se také mění v závislosti na předané volbě. Například volba -n
způsobí, že příkaz cat
očísluje všechny řádky výstupu. Podle toho, jak chcete, aby se příkaz choval, můžete použít libovolnou volbu, kterou příkaz cat
podporuje.
Jak se příkaz cat používá?
Pro použití příkazu cat
zadejte příkaz a název souboru (nebo souborů), který chcete například spojit a zobrazit. Pro výpis obsahu souboru rainbow.txt
použijte následující příkaz:
cat rainbow.txt
Můžete také přidat volby pro úpravu chování příkazu cat
. Například pro očíslení všech výstupních řádků použijte volbu -n
. Pro očíslení řádků v souboru rainbow.txt
zadejte:
cat -n rainbow.txt
Výstupy těchto dvou příkazů jsou uvedeny níže:
Pro kombinaci voleb, které lze použít s příkazem cat
, jednoduše napište volby jednu za druhou, nebo je můžete seskupit. Oba způsoby jsou validní. Například volba -E
slouží k přidání znaku dolaru ($
) na konec každého výstupního řádku.
To může být užitečné například při zobrazování peněžních částek. Způsoby, jakými lze kombinovat více voleb s příkazem cat
, jsou zobrazeny níže:
Pro spojení a zobrazení více souborů pomocí příkazu cat
, napište jména souborů za sebe, oddělené mezerami. Například pro spojení dvou souborů rainbow.txt
a primary.txt
, použijte následující řádek:
cat rainbow.txt primary.txt
Výstup tohoto příkazu je:
Původní soubory rainbow.txt
a primary.txt
zůstanou po této operaci nezměněny. Důležité je, že pořadí, ve kterém se soubory objeví v příkazu, určuje, v jakém pořadí se zobrazí jejich obsah. Obsah se zobrazuje od prvního souboru po poslední. Můžete také přidat volby při spojování a zobrazování více souborů, jak je ukázáno níže:
Další důležitá věc u příkazu cat
je, že v případě, že příkaz neobdrží žádný soubor, nebo pokud dostane jako jméno souboru pouze pomlčku (-
), tak cat
čte ze standardního vstupu, místo ze souboru. Standardním vstupem je klávesnice.
Proto příkaz cat
pouze zobrazí vše, co uživatel zadá z klávesnice. Pro vyzkoušení zadejte příkaz:
cat
Příkaz vás přesune na blikající kurzor čekající na vstup z klávesnice. Zadejte libovolný text a stiskněte Enter. Vše, co napíšete, se zobrazí na standardním výstupu, jak je uvedeno níže:
Pro ukončení stiskněte klávesy CTRL + C
, čímž se zastaví odesílání vstupu do příkazu cat
.
Příkaz cat
lze také použít pro spojení a výpis obsahu všech souborů určitého typu v aktivním adresáři. To se provádí za použití hvězdičky *
, což je takzvaná divoká karta. Například pro vypsání obsahu všech textových souborů (.txt
) v konkrétním adresáři, zadejte následující kód:
cat *.txt
Výstup příkazu je zobrazen níže:
Příklady použití příkazu cat
Kromě standardního použití lze funkcionalitu příkazu cat
rozšířit pomocí přesměrování. Jak už bylo řečeno, příkaz cat
standardně zobrazuje svůj výstup v terminálu.
Nicméně pomocí přesměrování můžeme přesměrovat výstup do jiného souboru, místo toho, aby se zobrazoval na obrazovce.
Operátor pro přesměrování výstupu v Linuxu je >
(větší než, nebo také chevron).
cat rainbow.txt
Pokud například zadáme:
Obsah souboru rainbow.txt
se zobrazí v terminálu.
cat colors.txt > rainbow.txt
Pokud ale zadáme:
Obsah souboru rainbow.txt
se nezobrazí na obrazovce. Místo toho bude přesměrován a zapsán do souboru colors.txt
. To je výborný způsob, jak kopírovat obsah z jednoho souboru do druhého.
Výchozí chování přesměrování výstupu v Linuxu je, že přepíše veškerý obsah souboru, do kterého se přesměrovává. Například v předchozím příkladu se veškerý obsah v souboru rainbow.txt
přepíše obsahem souboru colors.txt
. Chcete-li zachovat stávající obsah v cílovém souboru a nový obsah k němu pouze připojit, použijte při přesměrování operátor >>
.
Jak vidíte níže, soubor colors.txt
nyní obsahuje barvy, které byly původně v souboru rainbows.txt
, a to po přesměrování výstupu souboru rainbows.txt
do souboru colors.txt
pomocí operátoru >>
.
Abychom ještě více posunuli funkčnost příkazu cat
, můžeme zkombinovat přesměrování a výchozí chování příkazu cat
při čtení ze standardního vstupu (pokud není zadán žádný soubor), a tím pádem můžeme použít cat
pro vytvoření nového souboru a zápisu do něj.
cat > dark.txt
Pokud zadáte následující příkaz:
Bude přesměrován výstup do souboru dark.txt
. Protože jsme nezadali soubor, jehož obsah by se měl přesměrovat do dark.txt
, příkaz cat
bude očekávat vstup z klávesnice.
Zadejte tedy libovolný text, který chcete uložit do souboru dark.txt
, stiskněte Enter pro přechod na další řádek a po zadání veškerého textu stiskněte klávesy CTRL + D
pro uložení všeho, co jste napsali, do cílového souboru.
Protože přesměrováváme do souboru, který neexistuje, automaticky se vytvoří soubor dark.txt
a do něj se uloží vše, co jste napsali z klávesnice. Tímto způsobem můžete používat příkaz cat
pro vytváření souborů a zápis do nich ihned po jejich vytvoření.
Výstup této operace je:
cat >> dark.txt
cat
lze také použít pro přidání textu na konec souboru. V souboru dark.txt
můžeme přidat další barvy zadáním:
Poté můžete zadat další informace pomocí klávesnice a po zadání stisknout klávesy CTRL + D
pro uložení a připojení nového obsahu do dark.txt
, jak je uvedeno níže:
cat file1 file2 file3 > file4
Příkaz cat
lze také použít pro sloučení několika souborů do jednoho. Syntaxe takové operace je:
Obsah souborů file1
, file2
a file3
se spojí a zapíše do souboru file4
. Můžete také použít operátor >>
, pokud nechcete přepsat obsah souboru file4
. Pokud soubor file4
neexistuje, bude automaticky vytvořen.
Příklad:
cat colors.txt primary.txt > allColors.txt
Pro zapsání obsahu souborů colors.txt
a primary.txt
do allColors.txt
, zadáme:
cat primary.txt >> colors.txt
Obsah jednoho nebo více souborů můžete také připojit k jinému souboru pomocí příkazu cat
. To se provádí za použití operátoru >>
při přesměrování výstupu. Tím se zabrání přepsání existujícího obsahu cílového souboru. Například pro přidání obsahu souboru primary.txt
k souboru colors.txt
, zadejte:
Výsledek této operace je zobrazen níže:
Závěrem
Příkaz cat
je velmi užitečný linuxový nástroj, který uživatelům umožňuje spojovat a zobrazovat obsah souborů. Příkaz má několik voleb, které se dají přidat pro změnu jeho chování.
Pomocí přesměrování lze významně rozšířit funkcionalitu příkazu cat
, což uživatelům umožňuje vytvářet a kopírovat soubory, spojovat více souborů do jednoho a také připojovat soubory k jiným existujícím souborům. Pro více informací o příkazu cat
si prosím prostudujte jeho manuálové stránky.
Můžete se také podívat na některé z linuxových příkazů pro systémové administrátory.