Jak zapisać dane wyjściowe 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, aby można było je natychmiast odczytać. Ale bash pozwala także na "przekierowanie" wyjścia dowolnego polecenia, zapisując je do pliku tekstowego, dzięki czemu możesz przejrzeć wyniki później.
Działa to w bashu na dowolnym systemie operacyjnym, od Linuksa i macOS po środowisko bash oparte na Ubuntu.
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" - 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
dane wyjściowe 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 pojedynczego 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 wydruk normalnie i przekieruj go 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
To doda wyjście do końca pliku, podobnie jak >>
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ć więcej szczegółowych informacji, zapoznaj się z rozdziałem Przekierowania we / wy w podręczniku Advanced Bash-Scripting Guide.