Rouru (|) znáte? A co < a >? Víte jak tyhle věcí fungují a k čemu je můžete použít? Liší se to nějak mezi operačními systémy?
Každý program má standardní vstup (stdin), standardní výstup (stdout) a často taky standardní chybový výstup (stderr). V rámci toho jsou pak |, < a > operátory přesměrování – rourou se propojí výstup z jednoho programu jako vstup do jiného. A menšítko a většítko umožní propojit soubor místo klávesnice/obrazovky.
Pipe | – roura mezi programy
Obecná idea (ve všech systémech stejná):
program1 | program2
Postará se o to, že stdout (výstup) programu1 putuje ns stdin (vstup) programu2. Tedy to co “leze ven” z prvního, se stane vstupem pro druhý.
Příklad z Linuxu:
ls | grep txt
ls vypíše obsah složky a grep txt ho dostane jako vstup aby v něm vyhledal “txt” a poskytl to jako finální výstup.
Důležité je, že ve většině shellů je do pípy přenášen jen stdout nikoliv stderr.
Pozor, v PowerShell (Windows, Linux, macOS) nepředává text, ale .NET objekty.
Get-Process | Where-Object CPU -gt 10 | Sort-Object CPU -Descending
Když ale pipujete do externího programu (typicky klasické exe jako findstr, git), PowerShell ty objekty převádí na řetězce
ipconfig | findstr IPv4
PowerShell má navíc datové proudy 1–6 (oprotí běžným 0 – stdin, 1 – stdout a 2 – stderr):
1 – Success (běžný výstup)
2 – Error
3 – Warning
4 – Verbose
5 – Debug
6 – Information
Přesměrování: < a >
Základní významy (platí ve všech světech, jen drobné odchylky):
> – přesměruj stdout do souboru, soubor přepiš
ls > soubor.txt
ls vypisuje obsah složky, tady přesměrováním dojde k uložení výpisu do souboru. Soubor ale bude vytvořen znovu, pokud tedy existuje, bude přepsán.
>> – přesměruj stdout do souboru, připoj na konec
Pokud chcete aby výstup byl přidán na konec souboru (pokud existuje, jinak bude vytvořen), tak je nutné použít >>
< – čti stdin ze souboru místo z klávesnice
sort < soubor.txt
Vezme obsah souboru soubor.txt a pustí ho do sort, ten ho utřídí a výsledek zobrazí (protože půjde na stdout).
2> – přesměruj stderr do souboru
Jak bylo naznačeno výše, pípa nepracuje s stderr, tedy chybovými hláškami. Můžete ale využít 2> a chybové výstupy ukládat do souboru.
2>&1 – přesměruj stderr tam, kam už jde stdout
ls > vse.log 2>&1
Speciální „černá díra“
/dev/null v Unixu, NUL ve Windows. Můžete používat například takto:
příkaz > /dev/null 2>&1 # zahodí všechen výstup (stdout i stderr)
příkaz > NUL 2>&1 # totéž ve Windows CMD
„Černá díra“ v PowerShellu
cmd | Out-Null
&> – stdout i stderr do jednoho souboru
|& – pipe pro stdout + stderr:
Nefunguje všude – bash/zsh, ale ne čisté POSIX sh
cmd &> vse.log
cmd |& grep error
Shrnutí v jedné tabulce (pozor, sestavila ChatGPT)
| Operátor | Název / význam | Unix (bash/zsh) | CMD/DOS | PowerShell |
| ` | ` | pipe / roura, pipeline | stdout → stdin | stdout → stdin |
| > | přesměrování stdout, přepsat soubor | ano | ano | přesměruje success stream (1), alias Out-File |
| >> | přesměrování stdout, připojit na konec | ano | ano | ano (append) |
| < | přesměrování stdin ze souboru | ano | ano | funguje, ale méně používané (častěji Get-Content) |
| 2> | přesměrování stderr / error | ano (2> → stderr) | ano (2> → stderr) | ano (error stream 2) |
| 2>&1 | stderr → tam, kam jde stdout | ano | ano | funguje (přesměruje stream 2 na cíl streamu 1) |
| &> | stdout+stderr → soubor | bash/zsh rozšíření | ne | ne, místo toho *> |
| *> | všechny streamy → soubor | ne | ne | ano |
| /dev/null / NUL | „černá díra“ pro výstup | /dev/null | NUL | NUL, $null, Out-Null |
Pár praktických příkladů
Unix/Linux/MacOS
# Spočítej, kolik řádků obsahuje "error" v logu
grep error /var/log/syslog | wc -l
# Ulož seznam souborů, chyby bokem
ls /etc > seznam.txt 2> chyby.txt
# Zahoď všechen výstup
příkaz > /dev/null 2>&1
Windows CMD
REM Vyhledej "ERROR" ve výpisu služeb a ulož jen nalezené řádky
sc query | find "ERROR" > error_services.txt
REM Zahoď výstup i chyby
příkaz > NUL 2>&1
PowerShell
# Seznam procesů podle CPU
Get-Process | Where-Object CPU -gt 1 | Sort-Object CPU -Descending
# Ulož běžný výstup a chyby samostatně
příkaz 1> out.log 2> err.log
# Varování a chybové hlášky do souborů, výstup nech na obrazovce
příkaz 3> warnings.log 2> errors.log
Další tipy týkající se Linuxu (a podobných věcí)
-
TIP#2159: Co je to sideloading?
Když už se teď hodně píše a mluví o tom, že EU přinutí Apple k “sideloading”, tak je vhodný čas si tento termín vysvětlit. Týká se to zejména Apple, protože sideloading blokuje,…
-
TIP#2150: Proč vám po instalaci nestartuje Ubuntu. a jak dostat Windows do Grubu po instalaci Ubuntu na jiný disk.
Máte počítač kde “C:” je Windows a k tomu je tam nějaký další disk (v mém případě dokonce dva, D: a F:). Na ten jste nainstalovali Ubuntu (boot USB klíčenky na kterou…
-
TIP#2141: Jak si pro Mac OS pořídit (zpět) nano editor a Python
Možná jste to zaregistrovali. Po aktualizaci (od 12.3 výše) se místo nano spouští pico. Apple neznámo proč nano dali pryč a přes symlink v /usr/bin/nano spouštějí pico. Související příspěvky TIP#951: Pomohou mi…
-
TIP#2133: Vkládat (nejen) obrázky můžete i přes Copy/paste (Ctrl+C/Ctrl+V). Naučte se to
Nosit dříví do lesa, to 365tipů občas dělá. Vysvětlováním něčeho co “přece ví každý”. Jenže, letitá zkušenost je, že je spousta věcí, které lidé neví. A tohle je právě ta jedna z…
-
TIP#2107: Jak stahovat hudbu z YouTube
Jak stahovat videa z YouTube jsme tu už řešili v Jak stáhnout video z Facebooku, YouTube, Instagramu a dalších webů? a Jak stáhnout z YouTube video? Není to na počítačích až tak…
-
TIP#2095: Jak v Ubuntu zvětšit písmo v Grub, boot manageru? A jak nastavit jinou výchozí volbu
Pokud jste si čirou náhodou nainstalovali na počítač (notebook) Ubuntu a Windows současně, tak po zapnutí uvidíte jako první výběr systému pro spuštění v sofware co se jmenuje grub. Související příspěvky TIP#729:…
-
TIP#2077: Mám si pořídit placený antivir? Stačí ty zdarma?
Antivir je povinná výbava pro Windows a rozhodně neuškodí to takto brát i pro Mac OS. Pro Linux je to s otazníky, ale když už ne povinně, tak se tam alespoň hodí.…
-
TIP#2039: Jak na Mac OS (Linuxu i Windows) převést QuickTime (MOV) na MP4?
Tyhle věci stále Apple strašně neochotně řeší. Záznam obrazovky ukládá video jako QuickTime, takže pokud ho chcete použít kdekoliv jinde, tak ho musíte převést na MP4. Což QuickTime aplikace prostě neumí. Uměla…
-
TIP#2025: Máte Windows 10/11 a Ubuntu přes Dual Boot a ztrácí se v Ubuntu WiFi adaptér? Jak ve Windows zakázat Fast Boot (rychlé spuštění)
Tohle je vtipná zapeklitost minimálně pro Intel Wi-Fi adaptér v notebooku ASUS. kde je Windows 10/11 a Ubuntu přes DualBoot. Po spuštění Ubuntu se vám neaktivuje WiFi adaptér, ačkoliv předtím bez problémů…
-
TIP#2012: Jak z Ubuntu odinstalovat/odstranit nějakou aplikaci/software
Při nedávném zkoumání toho jak vzdáleně přistupovat na Ubuntu jsme si do Ubuntu nainstalovat Chrome Remote Desktop – instalace je přes .deb balíček a nikde v Ubuntu nenajdete viditelnou odinstalaci. Takže je…
-
TIP#1994: Co je to about:blank, proč se mi to v prohlížeči ukazuje a jak se nastaví domácí stránka v prohlížeči
about:blank je označení pro prázdnou stránku v prohlížečích. Funguje v adresním řádku a je to užitečné výchozí nastavení pro domácí/startovací stránku prohlížeče. Tedy pokud si nechcete z nějakého důvodu nastavit něco jiného. …
-
TIP#1969: Jak stáhnout a nainstalovat Google Chrome
Z jedné strany tak trochu nadbytečný tip, tohle přece je snadné a každý to musí vědět. Jenže přesně tímto způsobem to nefunguje. Ne každý ví, jak si do počítače pořídit Google Chrome. …
-
TIP#1960: Jak zjistím co mám za Linux/MacOS a jakou verzi?
Potřebujete zjisti co máte za Linux (Mac OS) a navíc ještě jakou verzi? Nejsnazší je to z příkazové řádky, tedy terminalu (shellu). Související příspěvky TIP#951: Pomohou mi při práci na počítači nějak…
-
TIP#1925: Co je to Seznam četby/Reading list v Chrome a jak se zbavit zbytečné položky v liště
Možná jste si všimli, že se vám v liště záložek v Chrome náhle zcela vpravo objevil Seznam četby. Nadělila vám to tam některá z posledních aktualizací, co se neptala, jestli něco takového…
-
TIP#1908: Jak synchronizovat otevřené záložky mezi různými prohlížeči (a počítači)
Používám Chrome hlavně pro možnost používat desítky samostatných profilů a běžně mám otevřených pět Chrome, každý z nich „nad“ jiným projektem. Stejné profily mám na počítači i na notebooku a každý z…

















