Tee

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 15 december 2018; kontroller kräver 4 redigeringar .

tee  är ett kommando som visar eller omdirigerar utdata från kommandot och kopierar det till en fil eller variabel. I första hand används kommandot tillsammans med omdirigeringar och filter . Används i en mängd olika operativsystemskal som Unix-skal , 4DOS / 4NT och Windows PowerShell .

Syfte och syntax

tee används för att separera programutdata så att data kan användas för visning och sparas i en fil. Kommandot kan också användas för att hämta mellanliggande data innan det ändras av ett annat program eller kommando. Tee-kommandot läser standardinmatning (stdin) , skriver den sedan till standardutgång (stdout) och kopierar den samtidigt till en förberedd fil eller variabel. Syntaxen varierar beroende på var kommandot används.

UNIX

tee [-a] [-i] [Arkiv ...]

Variabler:

Flaggor:

När det är klart returnerar kommandot följande utgångsstatusvärden :

Obs: Om skrivning till någon framgångsrikt öppnad fil misslyckas, skrivs data till nästa framgångsrikt öppnade fil, operanden och standardutgången (stdout) , men utgångsstatusen är >0.

Exempel

UNIX

lint program.c | tee program.lint

Detta kommando kommer att visa kommandots standardutgång lint program.cpå utgångsmediet, samtidigt kommer det att spara utgången till en program.lint. Om en sådan fil redan finns kommer den att skrivas över.

lint program.c | tee -a program.lint

Som i föregående exempel kommer data från kommandot att visas på skärmen lint program.c, varefter dessa data kommer att läggas till i slutet av filen program.lint. Om en sådan fil inte finns skapas den.

echo "filen..." | sudo tee root_owned_file > /dev/null

Det här exemplet visar hur man använder tee för att komma runt begränsningarna för sudo-kommandot , vilket förhindrar det från att omdirigera utdata ( stdout ) till en fil. Och ytterligare omdirigering till /dev/nullkommer att undvika textutmatning till konsolen.

ls ./qwerty 2>&1 | tee ls.log

Som standard skriver tee-kommandot endast data från STDOUT till filen, så om filen "qwerty" inte finns i den aktuella katalogen, kommer filen ls.log att lista de filer och kataloger som finns och kommer inte att spela in en fil som inte hittas. Utgångarna från både STDOUT och STDERR kommer att visas på skärmen. Om filen också behöver inkludera data från STDERR, är det nödvändigt, som i exemplet ovan, att omdirigera STDERR till STDOUT.