4Sep

Jak zapisać wyjście polecenia do pliku w Bash( także Linux i terminal MacOS)

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/ plik

Nie 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/ plik

Pamię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/ plik

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.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/ plik

To 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.