Porady Admina: tee
Ostatnia aktualizacja: 15 września 2023, 22:28
W dzisiejszym wpisie z cyklu Porady Admina zajmiemy się programem tee.
tee czyta ze standardowego wejścia i zapisuje na standardowe wyjście oraz do pliku. Kopiuje standardowe wejście do każdego PLIKU, wypisując je również na standardowe wyjście.
Program tee jest częścią pakietu coreutils.
Opcje
-a, –append : dołącza dane do podanych PLIKÓW, nie nadpisując ich zawartości
-i, –ignore-interrupts : ignoruje sygnały przerwania
-p : diagnozuje błędy przy zapisie na dowolne wyjście niebędące potokiem
–output-error[=TRYB] : kontroluje zachowanie przy zapisie błędów. Zob. TRYB poniżej.
Składnia
[polecenie] | tee [opcja] [plik]
Zapis wynik polecenia do pliku
uptime | tee mojplik1
14:28:13 up 4:23, 2 users, load average: 0,12, 0,39, 0,66
Aby sprawdzić, czy tee przekazał wynik polecenia do pliku można użyć polecenia cat
cat mojplik1
tee domyślnie nadpisuje zawartość już istniejącego pliku. Aby plik nie zastał nadpisany, tzn. aby obecna zawartość pliku nie została usunięta i zastąpiona nową, można użyć opcji -a. W takim wypadku nowe dane zostaną dodane do wybranego pliku
uname -a | tee -a mojplik1
Linux ***** 6.0.0-4-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.0.8-1 (2022-11-11) x86_64 GNU/Linux
W tym przypadku plik mojplik1 zawiera teraz dwie informacje
14:28:13 up 4:23, 2 users, load average: 0,12, 0,39, 0,66
Linux ***** 6.0.0-4-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.0.8-1 (2022-11-11) x86_64 GNU/Linux
Jeśli chcemy przekazać informację wszystkim użytkownikom systemu (jako admin), możemy wynik polecenia zapisać w kilku plikach
echo "Jutro, 21 grudnia 2035 roku będzie przerwa w działaniu systemu" | tee /home/user1/info /home/user2/info /home/user3/info
Aby ukryć wyświetlaną informację w konsoli i przekazać ją do pliku
uptime | tee mojplik1 >/dev/null
Ignoruj przerwania
Aby umożliwić prawidłowe wyjście tee nawet po przerwaniu poprzedniego polecenia, dodaj argument -i
[polecenie] | tee -i [plik]
Więcej informacji o programie tee uzyskasz poleceniami:
tee --help
man tee