4Sep
Po uruchomieniu polecenia w wierszu polecenia bash zwykle wypisuje dane wyjściowe tego polecenia bezpośrednio do terminala, dzięki czemu można je natychmiast odczytać.Ale bash pozwala również na "przekierowanie" danych wyjściowych dowolnego polecenia, zapisując je w pliku tekstowym, dzięki czemu można później przejrzeć wyniki.
Działa w bashu na dowolnym systemie operacyjnym, od Linuksa i macOS po środowisko bash oparte na Ubuntu.
Opcja 1: Przekieruj dane wyjściowe tylko do pliku
Aby użyć przekierowania bash, uruchom polecenie, podaj & gt;lub> & gt;operator, a następnie podaj ścieżkę do pliku, do którego chcesz przekierować dane wyjściowe.
- & gt;przekierowuje wyjście polecenia do pliku, zastępując istniejącą zawartość pliku.
- > & gt;przekierowuje wyjście polecenia do pliku, dołączając dane wyjściowe do istniejącej zawartości pliku.
Technicznie, to przekierowuje "stdout" - standardowe wyjście, które jest ekranem - do pliku.
Oto prosty przykład. Polecenie ls 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 & gt;/path/to/ plikNie trzeba podawać ścieżki do istniejącego pliku. Podaj poprawną ścieżkę, a bash utworzy plik w tej lokalizacji.
Jeśli przejrzysz zawartość pliku, zobaczysz wynik polecenia ls. Na przykład polecenie cat wyświetla zawartość pliku na terminalu:
cat /path/to/ plikPamiętaj, że & gt;operator zamienia istniejącą zawartość pliku na dane wyjściowe polecenia. Jeśli chcesz zapisać wynik wielu poleceń w jednym pliku, użyj & gt; & gt;zamiast tego operator. Na przykład następujące polecenie doda informacje o systemie do określonego pliku:
uname -a & gt; & gt;/path/to/ plikJeś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.plik.
Opcja druga: wydruk wyjściowy normalnie i przekierowanie do pliku
Możesz nie lubić przekierowywania danych wyjściowych za pomocą & gt;lub> & gt;operatorów, ponieważ nie zobaczysz danych wyjściowych polecenia w terminalu. Po to jest te polecenie. Polecenie tee wypisuje dane wejściowe, które otrzymuje na ekranie , a zapisuje je do pliku w tym samym czasie.
Aby wyprowadzić dane wyjściowe polecenia do tee, wydrukować je na ekranie i zapisać do pliku, użyj następującej składni:
command |plik /path/to/Zastąpi to wszystko w pliku wyjściowym polecenia, podobnie jak w & gt;operator.
Aby przesłać dane wyjściowe polecenia do tee, drukowania na ekranie i zapisywania do pliku, ale dołączając je do końca pliku:
command |tee -a /path/to/ plikTo doda dane wyjściowe na końcu pliku, podobnie jak & gt; & gt;operator.
Powłoka bash zawiera dodatkowe, zaawansowane operatory, które wykonują podobne funkcje. Będą one 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.