Jak przekierować wyjście z komendą?


25

W wierszu polecenia mogę przekierować lub potokować wyjście polecenia do pliku lub innego polecenia za pomocą operatora >lub |po poleceniu. Natknąłem się na mniej standardową sytuację, w której chciałbym przekierować dane wyjściowe do pliku, ale wydaje mi się, że nie mam możliwości przekierowania go:

Będąc w nowym terminalu

[chiliNUT ~]$

jeśli nacisnę Tabbez pisania, najpierw zostaniesz zapytany

display all 1725 possibilities? (y or n)

a jeśli wtedy ypiszę, otrzymuję ładną długą listę różnych poleceń. Jak mogę przekierować lub przesłać dane wyjściowe do pliku? Wydaje mi się, że > myfile.txtnigdzie nie mam okazji pisać .

Korzystanie z CentOS wersja 6.4 (wersja ostateczna) .

Odpowiedzi:


26

Możesz skorzystać z wbudowanego compgen:

compgen: compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat]
[-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix]
[-S suffix] [word]

    Display possible completions depending on the options.

    Intended to be used from within a shell function generating possible
    completions.  If the optional WORD argument is supplied, matches against
    WORD are generated.

    Exit Status:
    Returns success unless an invalid option is supplied or an error occurs.

TABpo pytaniu wyświetli listę poleceń, wbudowanych powłok, słów kluczowych, aliasów i funkcji. Więc możesz powiedzieć:

compgen -cbka -A function | grep '^y' > myfile.txt

aby uzyskać wszystkie opcje widoczne po wpisaniu yTABw wierszu polecenia powłoki do pliku myfile.txt.

Wyeliminuj greppotok, aby uzyskać wszystkie możliwe polecenia, funkcje, ... do pliku:

compgen -cbka -A function > myfile.txt

1
Niesamowite! Twoja odpowiedź jest napisana, że ​​w rzeczywistości pobiera tylko polecenia / pliki zaczynające się na literę y, więc po prostu compgen -cbka -A function > myfile.txtpobiera pełne wyjście. Dzięki! (Oczywiście) nigdy nie wiedziałem o tej nowej interesującej funkcji.
chiliNUT

Och, to sprytne.
Hauke ​​Laging

@chiliNUT Wspomniałem, że polecenie sprawi, że zaczną od y:) To było w zasadzie zgodne z tym, co pokazałeś w pytaniu!
devnull

Och, ha, trochę źle zrozumiałem. „Y” w moim pytaniu w rzeczywistości odpowiada „tak” vs „nie”; Wpisuję „y” i wyrzuca wszystkie te polecenia, wpisuję „n” i nic nie wyprowadza.
chiliNUT

2
@chiliNUT Zaktualizowałem odpowiedź, aby to również odzwierciedlić.
devnull
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.