If-Koubou

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

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

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.

Opcja pierwsza: Przekieruj dane wyjściowe tylko do pliku

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.

Opcja druga: Wydrukuj dane wyjściowe i przekieruj je do 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.