Główna » jak » Jak zapisać dane wyjściowe polecenia do pliku w Bash (także Linux i terminal MacOS)

    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.