Tee (Befehl)
Entwickler (en) | AT & T Bell Laboratories, Mike Parker, Richard Stallman, David Mackenzie, Mikrokruste, Jim Hall, JP -Software, Microsoft |
---|---|
Erstveröffentlichung | Juni 1974 |
Geschrieben in | C |
Betriebssystem | Unix, Unix-artig, Plan 9, Inferno, OS-9, Freedos, Fenster, Reactos, Ibm i |
Plattform | Plattformübergreifend |
Typ | Befehl |
Lizenz | Freedos: GPL-2.0-or-Later Reactos: GPLV2 Plan 9: MIT -Lizenz |
Im Computer, T -Shirt
ist ein Befehl in Befehlszeileninterpreten (Muscheln) Verwenden Standardströme Dies liest die Standardeingabe und schreibt sie sowohl in die Standardausgabe als auch in eine oder mehrere Dateien, wodurch der Eingang effektiv dupliziert wird.[1] Es wird hauptsächlich in Verbindung mit Rohre und Filter. Der Befehl ist nach dem benannt T-Splitter bei der Sanitärinformation.[2]
Überblick
Das T -Shirt
Befehl wird normalerweise verwendet Teilt Die Ausgabe eines Programms, damit es sowohl in einer Datei angezeigt als auch gespeichert werden kann. Der Befehl kann verwendet werden, um die Zwischenausgabe zu erfassen, bevor die Daten durch einen anderen Befehl oder Programm geändert werden. Der Befehl tee liest lautet Standardeingabe, dann schreibt er seinen Inhalt an Standardausgabe. Es kopiert die Daten gleichzeitig in die angegebenen Dateien oder Variablen. Die Syntax unterscheidet sich je nach Implementierung des Befehls.
Implementierungen
Der Befehl ist für verfügbar für Unix und Unix-artig Betriebssysteme, Mikrokruste OS-9,[3] DOS (z.B. 4dos, Freedos), Microsoft Windows (z.B. 4nt, Windows PowerShell), und Reactos.[4] Der Linux T -Shirt
Das Kommando wurde von Mike Parker geschrieben, Richard Stallmanund David Mackenzie.[5] Der Befehl ist als separates Paket für verfügbar Microsoft Windows Im Rahmen des Unxutils Sammlung von einheimisch Win32 Häfen von gemeinsamen GNU-Unix-ähnlichen Versorgungsunternehmen.[6] Das Freedos Die Version wurde von entwickelt von Jim Hall und ist unter dem lizenziert Gpl.[7] Das T -Shirt Der Befehl wurde auch auf die portiert Ibm i Betriebssystem.[8]
Zusätzlich die Schwamm
[9] Befehl bietet ähnliche Funktionen.
Unix und Unix-artig
tee [-a] [-i] [Datei ...]
Argumente:
-
Datei ...
Eine Liste von Dateien, von denen jeder die Ausgabe erhält.
Flaggen:
-
-a
Fängt die Ausgabe an jede Datei an, anstatt sie zu überschreiben. -
-ich
Ignoriert Interrupts.
Der Befehl gibt die folgenden Exit -Werte zurück (Status beenden):
- 0 Die Standardeingabe wurde erfolgreich in alle Ausgabedateien kopiert.
- > 0 Es ist ein Fehler aufgetreten.
Verwendung Prozesssubstitution lasst uns mehr als einen Prozess lesen Standardausgabe des Ursprungsprozesses. Lesen Sie dieses Beispiel von GNU CoreUtils, Tee -Aufruf.
Hinweis: Wenn ein Schreiben in eine erfolgreich geöffnete Dateioperand nicht erfolgreich ist, schreibt er an andere erfolgreich geöffnete Dateioperanden und die Standardausgabe wird fortgesetzt, der Exit -Wert beträgt jedoch> 0.
4dos und 4nt
Tee [/a] Datei ...
Argumente:
-
Datei
Eine oder mehrere Dateien, die die Ausgabe "Tee'd" erhalten.
Flaggen:
-
/EIN
Gehen Sie den Pipeline -Inhalt an die Ausgabedatei (n) an, anstatt sie zu überschreiben.
Hinweis: Wann T -Shirt wird mit einem Rohr verwendet, die Ausgabe des vorherigen Befehls wird an a geschrieben temporäre Datei. Wenn dieser Befehl endet, T -Shirt liest die temporäre Datei, zeigt die Ausgabe an und schreibt sie an die angegebenen Dateien als Befehlszeilenargument.
Windows PowerShell
tee [-filepath] <string> [-InputObject <StObject>] tee -variable <string> [-InputObject <SpsObject>]]
Argumente:
-
-InputObject
Gibt die Objekteingabe in das CMDLET an. Der Parameter akzeptiert Variablen, die die Objekte und Befehle oder den Ausdruck enthalten, die die Objekte zurückgeben. -
-Dateipfad
Gibt die Datei an, in der das CMDLET das Objekt speichert. Der Parameter akzeptiert Wildcard -Charaktere Das wird auf eine einzelne Datei gelöst. -
-Variable
Ein Verweis auf die Eingabefiele wird der angegebenen Variablen zugeordnet.
Notiz: T -Shirt wird als implementiert Schreibgeschützt
Kommandoalias. Der interne CMDLet -Name ist Microsoft.powerShell.utility \ tee-Object
.
Beispiele
Unix und Unix-artig
- Um die Ausgabe von einem Befehl anzusehen und zu speichern (Fussel) zur selben Zeit:
Lint Program.C | TEE -Programm.lint
Dies zeigt die Standardausgabe des Befehls an Lint Program.C
am Computer und gleichzeitig eine Kopie davon in der Datei sparen Programm.lint
. Wenn eine Datei mit dem Namen Programm.lint
Es existiert bereits, es wird gelöscht und ersetzt.
In ähnlicher Weise können sowohl die STDOut- als auch die STDERR -Ausgangsströme auf Standardausgabe und die umgeleitet werden Programm.lint
Verwenden der Stream -Umleitung:
Lint Program.C 2>&1 | TEE -Programm.lint
- Um die Ausgabe von einem Befehl an eine vorhandene Datei anzuzeigen und anzuhängen:
Lint Program.C | tee -a programm.lint
Dadurch wird die Standardausgabe der angezeigt Lint Program.C
Befehl am Computer und gleichzeitig eine Kopie davon am Ende des Programm.lint
Datei. Wenn die Programm.lint
Datei gibt es nicht, sie wird erstellt.
- Berechtigungen zu einer Eskalation:
cat ~/.sssh/id_rsa.pub | ssh admin@server "sudo tee -a /root/.sssh/authorized_keys2>/dev/null"
Dieses Beispiel zeigt T -Shirt verwendet werden, um eine inhärente Einschränkung in der zu umgehen sudo Befehl. sudo kann die Standardausgabe nicht in eine Datei übergeben. Indem er seinen Stdout -Stream in den Stream einladet /dev/null
Wir unterdrücken auch die gespiegelte Ausgabe in der Konsole. Der obige Befehl gibt dem aktuellen Benutzer -Root -Zugriff auf einen Server über SSH, indem der öffentliche Schlüssel des Benutzers auf der wichtigsten Autorisierungsliste des Servers installiert wird.
Im Verprügeln, der Ausgang kann sein gefiltert Bevor Sie in die Datei geschrieben werden - ohne die angezeigte Ausgabe - durch die Verwendung Prozesssubstitution. Zum Beispiel,
ls --farbe=stets | Tee>(sed "s/\ x1b [^m]*m // g" > ls.txt)
Entfernt gemeinsam Ansi Escape Codes vor dem Schreiben an ls.txt
, aber behält sie zur Anzeige.[10]
4dos und 4nt
In diesem Beispiel sucht die Datei Wikipedia.txt
Für alle Zeilen, die die Zeichenfolge enthalten "4dos", macht eine Kopie der passenden Zeilen in 4dos.txt
sortiert die Zeilen und schreibt sie in die Ausgabedatei 4Dosorted.txt
:
finden "4Dos" Wikipedia.txt | tee 4dos.txt | Sortieren > 4Dosorted.txt
Windows PowerShell
- So anzeigen und gleichzeitig die Ausgabe von einem Befehl zu speichern:
ipconfig | T -Shirt Ausgabedatei.txt
Dies zeigt die Standardausgabe des Befehls an ipconfig
Bei der Konsolenfensterund speichert gleichzeitig eine Kopie davon in der Datei OutputFile.txt
.
- Zum Anzeigen und Speichern aller Laufen Prozesse, gefiltert so, dass nur Programme beginnen, die mit SVC beginnen und mehr als 1000 besitzen Griffe ausgeben:
Get-Process | Wo-objekt { $ _.Name -wie "SVC*" } | T-Shirt-Objekt ABC.txt | Wo-objekt { $ _.Griffe -Gt 1000 }
Dieses Beispiel zeigt, dass der Pipeed -Eingang für T -Shirt kann gefiltert werden und das T -Shirt wird verwendet, um diese Ausgabe anzuzeigen, die erneut gefiltert wird, so dass nur Prozesse mit mehr als 1000 Griffen angezeigt werden, und schreibt die ungefilterte Ausgabe in die Datei ABC.TXT
.
- Windows PowerShell eignet sich nicht für binäre und Rohdaten und behandelt den Stream immer als Text und ändert die Daten, sobald sie übertragen werden.
Siehe auch
Verweise
- ^ "Mann Seite für Tee (POSIX Abschnitt 1)".IEEE STD 1003.1, 2003 Edition, Standard für Informationstechnologie - tragbare Betriebssystemschnittstelle (POSIX), die offenen Gruppenbasis -Spezifikationen Ausgabe 6. Abgerufen 1. Dezember 2013.
- ^ "In Unix, wofür stehen einige dunkel genannte Befehle?". Abgerufen 3. Februar 2012.
- ^ Paul S. Dayan (1992). Der OS -9 -Guru - 1: Die Fakten. Galaktische Industrial Limited. ISBN 0-9519228-0-7.
- ^ "Reactos/Reactos". GitHub. 3. Januar 2022.
- ^ "Tee (1): Lesen Sie aus Stdin/Schreiben Sie an Stdout/Dateien - Linux Man Page". Linux.die.net.
- ^ "Native Win32 -Ports einiger GNU -Dienstprogramme". Unxutils.SourceForge.net.
- ^ "ibiblio.org Freedos Paket-Tee (unix-ähnlich)". www.ibiblio.org.
- ^ IBM. "IBM System I Version 7.2 Programmierung Qshell" (PDF). Abgerufen 5. September 2020.
- ^ "Sponge (1): Saugen Sie Stdin/Schreiben Sie in Datei - Linux Man Page auf". Linux.die.net.
- ^ "GNU CoreUtils: Tee -Aufruf". Abgerufen 3. Februar 2016.
Weitere Lektüre
- McElhearn, Kirk (2006). Die MAC OS X -Befehlszeile: UNIX unter der Motorhaube. John Wiley & Sons. ISBN 978-0470113851.
Externe Links
- Eine Einführung zur Linux -I/A -Umleitung "Linux I/O -Umleitung" mit Tee
- GNU TEE -Handbuch
- Die einzelne Unix -Spezifikation, Version 4 von Die offene Gruppe : Doppelte Standardeingabe - Shell und Dienstprogramme, Referenz,
- Plan 9 Programmierhandbuch, Volume 1 - -
- Inferno Allgemeine Befehle Handbuch - -