Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

Linux låter dig lagra kommandots utdata i filer som ett sätt för omdirigering av utdata. När du sparar utdata till en fil med hjälp av > eller >> operatörer omdirigeras utgången utan att någon information visas på terminalen.

Men vad händer om du vill skriva ut resultatet på skärmen och lagra det i en fil samtidigt? Även om du inte kan göra det med omdirigeringsoperatorerna för utdata, är det möjligt att göra det med kommandot tee på Linux.

Grundläggande kommandosyntax

tee är ett standard Linux-verktyg som används för att dela utdata från ett kommando mellan standardutdata och filer.

Till skillnad från de flesta Linux-kommandon, används tee med andra program som använder en pipe (|). Röroperatören—en av de många kommandoradsoperatörer på Linux – låter ett program använda ett annat kommandos utdata som indata. Du kan ha använt pipe när du använde grep vid sidan av kommandot ls eller katt.

instagram viewer

Den grundläggande syntaxen för tee-kommandot är:

kommando | tee options filsökväg

...var alternativ och sökväg är kommandoradsargumenten och sökvägen till filen du vill lagra utdata i.

Delad terminalutgång på Linux med tee

Den enklaste användningen av tee är att dela utgången för att visa den i terminalen samt lagra den i en fil. Till exempel för att lagra utdata från kommandot ls till en textfil med namnet "output.txt," springa:

ls | tee ./output.txt

Utdata kommer att visa innehållet i den aktuella arbetskatalogen som vanligt. När du kontrollerar filen output.txt, kommer du att upptäcka att tee sparade utdata till filen också.

När du anger en filsökväg kontrollerar tee om filen finns. Om den inte hittar en, skapar den automatiskt filen åt dig, vilket gör den bekväm att använda i skalskript. Det är användbart när du vill logga utdata från ett program eller skript för senare referens.

Du måste inleda tee-kommandot med sudo för att läsa eller lagra data till en fil som ägs av root-användaren.

Om den angivna filen har data lagrad inuti som du inte vill skriva över, använd -a flagga till bifoga utdata till filen, istället för att rensa hela filen och sedan spara data:

ls | tee -a ./output.txt

På samma sätt kan du omdirigera utdata till flera filer genom att ange sökvägarna, separerade med enstaka mellanslag:

ls | tee ./output1.txt ./output2.txt

Ibland kan oväntade fel eller manuella avbrott (med Ctrl + C eller Ctrl + Z) i det tidigare kommandot kan få tee att avslutas. För att ignorera sådana avbrott, använd -jag flagga:

ls | tee -i output.txt

Till få kommandoradshjälp angående tee eller hitta versionsdetaljerna, använd --hjälp och --version flaggor enligt följande:

tee --hjälp
tee --version

Omdirigerar utdata till ett annat kommando

Du kan skapa en utgångskedja genom att koppla tee med andra Linux-kommandon. Om du gör det sparas utdata till den angivna filen och skickas sedan vidare till nästa kommando för bearbetning.

Använd följande format för att omdirigera tees utdata till ett annat kommando:

kommando | tee filsökväg | annat kommando

Till exempel kommer följande kommando att spara ls-kommandotutdata till output.txt innan du slutligen omdirigerar den till grep för en snabb sökning:

ls | tee output.txt | grep "Dokument"

Sammantaget kan du använda tee-kommandot för att leka med standardinmatningen och -utgången på Linux.

Manipulera utdata och text med Linux-kommandon

Tee-kommandot lägger till välbehövlig funktionalitet till standardoperatorerna för omdirigering av utdata på Linux. Du kan till och med använda den för att manipulera utmatningen av ett kommando innan du skickar det vidare till ett annat program.

På samma sätt kan du ändra text med hjälp av terminalen med hjälp av några vanliga Linux-kommandon. De kan ta lite tid att vänja sig vid, men i slutändan är textmanipulering via kommandoraden värt att lära sig för alla systemadministratörer.