Linux umożliwia przechowywanie danych wyjściowych poleceń w plikach jako sposób przekierowania danych wyjściowych. Podczas zapisywania danych wyjściowych do pliku za pomocą > Lub >> operatorów, dane wyjściowe są przekierowywane bez wyświetlania informacji na terminalu.
Ale co, jeśli chcesz wydrukować dane wyjściowe na ekranie i jednocześnie zapisać je w pliku? Chociaż nie można tego zrobić za pomocą operatorów przekierowania danych wyjściowych, można to zrobić za pomocą polecenia tee w systemie Linux.
Podstawowa składnia poleceń
tee to standardowe narzędzie Linuksa używane do dzielenia wyjścia polecenia między standardowe wyjście i pliki.
W przeciwieństwie do większości poleceń Linuksa, tee jest używany z innymi programami używającymi potoku (|). Operator fajki — jeden z wielu operatorów wiersza poleceń w systemie Linux — pozwala programowi używać danych wyjściowych innego polecenia jako danych wejściowych. Być może użyłeś potoku podczas używania grep obok
polecenie ls lub kot.Podstawowa składnia polecenia tee to:
komenda | ścieżka pliku opcji tee
...Gdzie opcje I ścieżka pliku to argumenty wiersza poleceń i ścieżka do pliku, w którym chcesz zapisać dane wyjściowe.
Podziel wyjście terminala w systemie Linux Z tee
Najprostszym zastosowaniem tee jest podzielenie danych wyjściowych w celu wyświetlenia ich w terminalu oraz zapisanie ich w pliku. Na przykład, aby zapisać dane wyjściowe polecenia ls w pliku tekstowym o nazwie „wyjście.txt," uruchomić:
ls | tee ./wyjście.txt
Dane wyjściowe będą jak zwykle wyświetlać zawartość bieżącego katalogu roboczego. Sprawdzając plik output.txt, przekonasz się, że tee również zapisał dane wyjściowe w pliku.
Gdy określisz ścieżkę do pliku, tee sprawdza, czy plik istnieje. Jeśli go nie znajdzie, automatycznie utworzy plik, dzięki czemu będzie wygodny do użycia w skryptach powłoki. Jest to przydatne, gdy chcesz zarejestrować dane wyjściowe programu lub skryptu do późniejszego wykorzystania.
Będziesz musiał poprzedzić polecenie tee sudo, aby odczytać lub zapisać dane w pliku należącym do użytkownika root.
Jeśli określony plik zawiera dane przechowywane w środku, których nie chcesz zastępować, użyj -A flaga do dodać wyjście do pliku, zamiast kasować cały plik, a następnie zapisywać dane:
ls | tee -a ./wyjście.txt
Podobnie możesz przekierować dane wyjściowe do wielu plików, określając ścieżki oddzielone pojedynczymi spacjami:
ls | tee ./wyjście1.txt ./wyjście2.txt
Czasami nieoczekiwane błędy lub ręczne przerwy (przy użyciu Ctrl + C Lub Ctrl + Z) w poprzednim poleceniu może spowodować zamknięcie tee. Aby zignorować takie przerwy, użyj -I flaga:
ls | tee -i wyjście.txt
Do uzyskać pomoc dotyczącą wiersza poleceń dotyczące tee lub znajdź szczegóły wersji, użyj --pomoc I --wersja flagi w następujący sposób:
tee - pomóż
tee --wersja
Przekierowanie danych wyjściowych do innego polecenia
Możesz utworzyć łańcuch wyjściowy, łącząc tee z innymi poleceniami systemu Linux. Spowoduje to zapisanie danych wyjściowych w określonym pliku, a następnie przekazanie ich do następnego polecenia w celu przetworzenia.
Użyj następującego formatu, aby przekierować dane wyjściowe tee do innego polecenia:
komenda | ścieżka pliku tee | inne polecenie
Na przykład następujące polecenie zapisze dane wyjściowe polecenia ls w wyjście.txt przed ostatecznym przekierowaniem go do grep w celu szybkiego wyszukiwania:
ls | wyjście tee.txt | grep „Dokumenty”
Ogólnie rzecz biorąc, możesz użyć polecenia tee, aby się pobawić standardowe wejście i wyjście w systemie Linux.
Manipulowanie danymi wyjściowymi i tekstem za pomocą poleceń systemu Linux
Polecenie tee dodaje bardzo potrzebną funkcjonalność do standardowych operatorów przekierowania wyjścia w systemie Linux. Możesz nawet użyć go do manipulowania danymi wyjściowymi polecenia przed przekazaniem go do innego programu.
Podobnie możesz modyfikować tekst za pomocą terminala za pomocą niektórych standardowych poleceń systemu Linux. Przyzwyczajenie się do nich może zająć trochę czasu, ale ostatecznie manipulacja tekstem za pomocą wiersza poleceń jest warta nauczenia się dla każdego administratora systemu.