Tee (příkaz) - Tee (command)
Vývojáři | AT&T Bell Laboratories Mike Parker, Richard Stallman David MacKenzie, Microware, Jim Hall, Software JP, Microsoft |
---|---|
První vydání | Červen 1974 |
Operační systém | Unix, Unixový, Plán 9, Peklo, OS-9, FreeDOS, Okna, ReactOS, IBM i |
Plošina | Cross-platform |
Typ | Příkaz |
Ve výpočetní technice, tričko
je příkaz v tlumočníci příkazového řádku (mušle ) použitím standardní streamy který čte standardní vstup a zapisuje jej do standardního výstupu i do jednoho nebo více souborů, čímž účinně duplikuje svůj vstup.[1] Primárně se používá ve spojení s potrubí a filtry. Příkaz je pojmenován po T-rozdělovač používaný v instalatérství.[2]
Přehled
The tričko
příkaz je obvykle zvyklý rozdělit výstup programu, aby jej bylo možné zobrazit i uložit do souboru. Příkaz lze použít k zachycení mezilehlého výstupu před změnou dat jiným příkazem nebo programem. Čte se příkaz tee standardní vstup, poté zapíše jeho obsah do standardní výstup. Současně kopíruje data do zadaných souborů nebo proměnných. Syntaxe se liší v závislosti na implementaci příkazu.
Implementace
Příkaz je k dispozici pro Unix a Unixový operační systémy, Microware OS-9,[3] DOS (např. 4DOS, FreeDOS ), Microsoft Windows (např. 4NT, Windows PowerShell ), a ReactOS.[4] Linux tričko
příkaz napsal Mike Parker, Richard Stallman a David MacKenzie.[5] The FreeDOS verze byla vyvinuta Jim Hall a je licencován pod GPL.[6]The tričko příkaz byl také přenesen do IBM i operační systém.[7]
Navíc mycí houba
[8] příkaz nabízí podobné možnosti.
Unix a podobné unixové
tričko [-a] [-i] [Soubor ...]
Argumenty:
Soubor ...
Seznam souborů, z nichž každý přijímá výstup.
Vlajky:
-A
Připojí výstup ke každému souboru, místo aby jej přepsal.-i
Ignoruje přerušení.
Příkaz vrátí následující hodnoty ukončení (stav ukončení ):
- 0 Standardní vstup byl úspěšně zkopírován do všech výstupních souborů.
- > 0 Došlo k chybě.
Použitím substituce procesu umožňuje přečíst více než jednomu procesu standardní výstup přečtěte si tento příklad z GNU Coreutils, vyvolání tee.
Poznámka: Pokud zápis na libovolný úspěšně otevřený operand File není úspěšný, zápisy na další úspěšně otevřené operandy File a standardní výstup budou pokračovat, ale výstupní hodnota bude> 0.
4DOS a 4NT
Soubor TEE [/ A] ...
Argumenty:
soubor
Jeden nebo více souborů, které obdrží výstup „tee'd“.
Vlajky:
/A
Připojte obsah potrubí k výstupním souborům, místo aby jste je přepisovali.
Poznámka: Kdy tričko se používá s rourou, výstup předchozího příkazu se zapíše do a dočasný soubor. Po dokončení tohoto příkazu tričko přečte dočasný soubor, zobrazí výstup a zapíše jej do souborů zadaných jako argument příkazového řádku.
Windows PowerShell
tee [-FilePath][-InputObject ] tee -Variable [-InputObject ]
Argumenty:
-InputObject
Určuje vstup objektu do rutiny. Parametr přijímá proměnné, které obsahují objekty a příkazy nebo výrazy, které vracejí objekty.-FilePath <řetězec>
Určuje soubor, kde rutina ukládá objekt. Parametr přijímá zástupné znaky že řešení do jednoho souboru.-Variable <Řetězec>
K zadané proměnné bude přiřazen odkaz na vstupní objekty.
Poznámka: tričko je implementován jako Pouze ke čtení
alias příkazu. Interní název rutiny je Microsoft.PowerShell.Utility Tee-Object
.
Příklady
Unix a podobné unixové
- Chcete-li zobrazit a uložit výstup z příkazu (žmolky ) ve stejnou dobu:
program na zachycování vláken. c | tee program.lint
Zobrazí standardní výstup příkazu program na zachycování vláken. c
v počítači a zároveň uloží jeho kopii do souboru program.lint
. Pokud soubor s názvem program.lint
již existuje, je odstraněn a nahrazen.
Podobně lze výstupní proudy stdout i stderr přesměrovat na standardní výstup a program.lint
pomocí přesměrování streamu:
program na zachycování vláken. c 2>&1 | tee program.lint
- Postup zobrazení a připojení výstupu z příkazu k existujícímu souboru:
program na zachycování vláken. c | tee -a program.lint
Zobrazí standardní výstup souboru program na zachycování vláken. c
příkaz na počítači a zároveň připojí jeho kopii na konec souboru program.lint
soubor. Pokud program.lint
soubor neexistuje, je vytvořen.
- Povolení eskalace oprávnění:
kočka ~ / .ssh / id_rsa.pub | ssh admin @ server "sudo tee -a /root/.ssh/authorized_keys2> / dev / null"
Tento příklad ukazuje tričko se používá k obejití inherentního omezení v sudo příkaz. sudo není schopen poslat standardní výstup do souboru. Vypuštěním svého stdoutového proudu do / dev / null
, potlačíme také zrcadlený výstup v konzole. Výše uvedený příkaz poskytuje aktuálnímu uživateli root přístup k serveru přes ssh instalací veřejného klíče uživatele do seznamu oprávnění klíče serveru.
v Bash, výstup může být filtrovaný před zápisem do souboru - bez ovlivnění zobrazeného výstupu - pomocí substituce procesu. Například,
ls - barva=vždy | tričko>(sed "s / x1b [^ m] * m // g" > ls.txt)
odstraňuje běžné Únikové kódy ANSI před zápisem do ls.txt
, ale ponechá si je pro zobrazení.[9]
4DOS a 4NT
Tento příklad prohledá soubor wikipedia.txt
pro všechny řádky obsahující řetězec "4DOS ", vytvoří kopii odpovídajících řádků v 4DOS.txt
, seřadí řádky a zapíše je do výstupního souboru 4DOSsorted.txt
:
nalézt „4DOS“ wikipedia.txt | tričko 4DOS.txt | třídit > 4DOSsorted.txt
Windows PowerShell
- Postup zobrazení a uložení výstupu z příkazu:
ipconfig | tričko Výstupní soubor.txt
Zobrazí standardní výstup příkazu ipconfig
na okno konzoly a současně uloží jeho kopii do souboru OutputFile.txt
.
- Chcete-li zobrazit a uložit všechny spuštěné procesy filtrováno tak, že pouze programy začínající svc a vlastnící více než 1000 rukojeti jsou výstupem:
Získejte proces | Kde-Objekt { $_.název -jako "svc *" } | Tee-Object ABC.txt | Kde-Objekt { $_.Rukojeti -gt 1000 }
Tento příklad ukazuje, že přiváděný vstup pro tričko lze filtrovat a to tričko se používá k zobrazení tohoto výstupu, který se znovu filtruje, takže se zobrazují pouze procesy vlastnící více než 1000 úchytů, a zapíše nefiltrovaný výstup do souboru ABC.txt
.
Viz také
Reference
- ^ „Man Page for tee (posix Section 1)“. IEEE Std 1003.1, 2003 Edition, Standard for Information Technology - Portable Operating System Interface (POSIX), The Open Group Base Specification Issue 6. Citováno 1. prosince 2013.
- ^ „V Unixu, co znamenají některé nejasně pojmenované příkazy?“. Citováno 3. února 2012.
- ^ Paul S. Dayan (1992). OS-9 Guru - 1: Fakta. Galactic Industrial Limited. ISBN 0-9519228-0-7.
- ^ "reagovat / reagovat". GitHub.
- ^ "tee (1): číst ze stdin / zapisovat do stdout / souborů - manuálová stránka Linuxu". linux.die.net.
- ^ „ibiblio.org balíček FreeDOS - tričko (podobné Unixu)“. www.ibiblio.org.
- ^ IBM. „IBM System i verze 7.2 Programování Qshell“ (PDF). Citováno 5. září 2020.
- ^ "houba (1): nasáknout stdin / zapsat do souboru - manuálová stránka Linuxu". linux.die.net.
- ^ „GNU Coreutils: vyvolání tee“. Citováno 3. února 2016.
Další čtení
- McElhearn, Kirk (2006). Příkazový řádek Mac OS X: Unix Under the Hood. John Wiley & Sons. ISBN 978-0470113851.
externí odkazy
- Úvod do přesměrování I / O Linuxu „Přesměrování I / O Linuxu“ s tee
- GNU tee manuál
- Specifikace Single UNIX, Vydání 7 od Otevřená skupina : duplicitní standardní vstup - reference k příkazům a nástrojům,
- Plán 9 Programátorská příručka, svazek 1 –
- Peklo Obecné příkazy Manuál –