web-dev-qa-db-ja.com

コマンド完了出力をリダイレクトするにはどうすればよいですか?

コマンドラインでは、コマンドの後に>または|演算子を使用して、コマンドの出力をファイルまたは別のコマンドにリダイレクトまたはパイプできます。出力をファイルにリダイレクトしたい標準的ではない状況に遭遇しましたが、それをリダイレクトする機会がないようです。

新しいターミナルにいるとき

[chiliNUT ~]$

私が押すと Tab 最初に何も入力せずに、私は尋ねられます

display all 1725 possibilities? (y or n)

そして私がそれからタイプすれば y、さまざまなコマンドの一覧が表示されます。この出力をファイルにリダイレクトまたはパイプするにはどうすればよいですか?どこにも> myfile.txtを入力する機会がないようです。

CentOS release 6.4(Final)を使用します。

26
chiliNUT

組み込みの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.

TAB プロンプトでは、コマンド、シェルのビルトイン、キーワード、エイリアス、関数が一覧表示されます。だからあなたは言うことができます:

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

入力時に表示されるすべてのオプションを取得する yTAB シェルプロンプトでファイルmyfile.txt

grepパイプラインを削除して、すべての可能なコマンド、関数などをファイルに入れます。

compgen -cbka -A function > myfile.txt
27
devnull