Làm thế nào để tôi chuyển hướng đầu ra hoàn thành lệnh?


25

Trên dòng lệnh, tôi có thể chuyển hướng hoặc đầu ra đường ống của một lệnh sang một tệp hoặc một lệnh khác bằng cách sử dụng >hoặc |toán tử sau lệnh. Tôi đã gặp một tình huống ít tiêu chuẩn hơn mà tôi muốn chuyển hướng đầu ra sang một tệp, nhưng dường như tôi không có cơ hội để chuyển hướng nó:

Khi ở một nhà ga mới,

[chiliNUT ~]$

Nếu tôi nhấn Tabmà không gõ gì trước, tôi sẽ được hỏi

display all 1725 possibilities? (y or n)

và nếu tôi gõ y, tôi nhận được một danh sách dài các lệnh khác nhau. Làm cách nào tôi có thể chuyển hướng hoặc chuyển đầu ra này thành một tệp? Tôi dường như không có cơ hội để gõ > myfile.txtbất cứ nơi nào.

Sử dụng CentOS phát hành 6.4 (Cuối cùng) .

Câu trả lời:


26

Bạn có thể sử dụng nội dung 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.

TABtại dấu nhắc sẽ liệt kê các lệnh, shell dựng, từ khóa, bí danh và hàm. Vì vậy, bạn có thể nói:

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

để có được tất cả các tùy chọn mà bạn thấy khi gõ yTABtại dấu nhắc shell vào tệp myfile.txt.

Loại bỏ các grepđường ống để có được tất cả các lệnh, hàm, ... có thể vào tệp:

compgen -cbka -A function > myfile.txt

1
Tuyệt vời! Bạn đang trả lời như được viết thực sự chỉ lấy các lệnh / tệp bắt đầu bằng chữ y, vì vậy chỉ cần compgen -cbka -A function > myfile.txtlấy toàn bộ đầu ra. Cảm ơn! Tôi (rõ ràng) không bao giờ biết về chức năng thú vị mới này.
chiliNUT

Ồ, thật thông minh.
Hauke ​​Laging

@chiliNUT Tôi đã đề cập rằng lệnh sẽ bắt đầu những thứ đó với y:) Điều này khá phù hợp với những gì bạn thể hiện trong câu hỏi!
devnull

Oh, ha, hiểu lầm một chút. 'Y' trong câu hỏi của tôi thực sự tương ứng với 'có' so với 'không'; Tôi nhập 'y' và nó phun ra tất cả các lệnh đó, tôi nhập 'n' và nó không xuất ra bất cứ thứ gì.
chiliNUT

2
@chiliNUT Tôi cũng đã cập nhật câu trả lời để phản ánh điều đó.
devnull
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.