Po uruchomieniu polecenia w wierszu polecenia bash zwykle wypisuje dane wyjściowe tego polecenia bezpośrednio do terminala, aby można było je natychmiast odczytać. Ale bash pozwala również na "przekierowanie" na wyjście dowolnego polecenia, zapisując je do pliku tekstowego, dzięki czemu można później przejrzeć wyniki.
Działa to w bashu na dowolnym systemie operacyjnym, od Linuksa i macOS po środowisko bash oparte na systemie Ubuntu w systemie Windows 10.
Aby użyć przekierowania basha, uruchom polecenie, podaj wartość >
lub >>
operator, a następnie podaj ścieżkę do pliku, do którego chcesz przekierować dane wyjściowe.
>
przekierowuje wyjście polecenia do pliku, zastępując istniejącą zawartość pliku.>>
przekierowuje wyjście polecenia do pliku, dołączając dane wyjściowe do istniejącej zawartości pliku.Technicznie, to przekierowuje "standardowe" wyjście, które jest ekranem do pliku.
Oto prosty przykład. The ls
polecenie wyświetla listę plików i folderów w bieżącym katalogu. Więc. po uruchomieniu następującego polecenia, ls
wyświetli listę plików i folderów w bieżącym katalogu. Ale nie wydrukuje ich na ekranie - zapisze je w pliku, który określisz.
ls> / path / to / file
Nie musisz podawać ścieżki do istniejącego pliku. Podaj poprawną ścieżkę, a bash utworzy plik w tej lokalizacji.
Jeśli przejrzysz zawartość pliku, zobaczysz ls
wynik polecenia. Na przykład kot
Polecenie wypisuje zawartość pliku do terminala:
cat / path / to / file
Zapamiętaj
operator zamienia istniejącą zawartość pliku na dane wyjściowe polecenia. Jeśli chcesz zapisać wyjście wielu poleceń do jednego pliku, użyjesz >
zamiast tego operator. Na przykład następujące polecenie doda informacje o systemie do określonego pliku:>>
uname -a >> / path / do / file
Jeśli plik jeszcze nie istnieje, bash utworzy plik. W przeciwnym razie bash pozostawi istniejącą zawartość pliku samodzielnie i dołączy plik wyjściowy na końcu pliku.
Po przejrzeniu zawartości pliku zobaczysz wyniki drugiego polecenia dołączone na końcu pliku:
Możesz powtórzyć ten proces tyle razy, ile chcesz, aby zachować dołączanie danych wyjściowych na końcu pliku.
Możesz nie lubić przekierowywania wyjścia za pomocą >
lub >>
operatorów, ponieważ nie zobaczysz danych wyjściowych polecenia w terminalu. Tak właśnie jest trójnik
polecenie jest dla. Polecenie tee wypisze dane wejściowe, które otrzymuje na ekran i zapisuje go do pliku w tym samym czasie.
Aby potokować wyjście polecenia do trójnik
, wydrukowanie go na ekranie i zapisanie do pliku, użyj następującej składni:
polecenie | tee / path / to / file
To zastąpi wszystko w pliku wyjściowym polecenia, podobnie jak >
operator.
Aby potokować wyjście polecenia do trójnik
, drukowanie na ekranie i zapisywanie do pliku, ale dołączanie go na końcu pliku:
polecenie | tee -a / path / do / file
Spowoduje to dołączenie danych wyjściowych na końcu pliku, podobnie jak >>
operator.
Powłoka bash zawiera dodatkowe, zaawansowane operatory, które wykonują podobne funkcje. Będą szczególnie przydatne, jeśli piszesz skrypty bash. Aby uzyskać bardziej szczegółowe informacje, zapoznaj się z rozdziałem Przekierowania we / wy w podręczniku Advanced Bash-Scripting Guide.