Có thể sửa đổi lệnh hoàn thành cho `cd` để chỉ hiển thị các thư mục và bỏ qua các tệp không?


12

Khi tôi ở trong một thư mục trong bash, và tôi nhấn cd Space Tab, nó sẽ hiển thị mọi thứ trong thư mục đó như một khả năng. ( Show all 1000 possibilities?) Điều này thực sự cồng kềnh khi tôi ở trong một thư mục có nhiều tệp thông thường và tương đối ít thư mục.

Vì vậy, có thể thực hiện các lựa chọn cho tự động hoàn thành cdđể chỉ bao gồm các thư mục?

Tôi biết tôi có thể có được một danh sách thư mục trong một thư mục bằng cách làm

ls -d */

nhưng tôi không chắc làm thế nào để tiến hành từ đó.

Tôi đang sử dụng CentOS 6.6 Final .

Câu trả lời:


25

Chỉ cần thêm

complete -d cd

trong ~/.bashrctập tin cấu hình bash của bạn (hoặc tập tin bash khác).


nó hoạt động cảm ơn. Tôi đã phải gõ bashsau để tải lại ~/.bashrctệp của mình
chiliNUT 23/2/2015

Nó thật thú vị. Đây là hành vi mặc định trong cài đặt Debian của tôi, nhưng việc gõ completekhông hiển thị -d cdhoặc bất cứ điều gì giống như vậy. Rõ ràng nó đã được thực hiện theo một cách khác ở đây.
Tom Zych 23/2/2015

@TomZych Có tập lệnh hoàn thành bash phổ biến , rất có khả năng distro của bạn đã cài đặt nó theo mặc định.
jimmij 23/2/2015

2
Để đọc lại ~/.bashrcloại . ~/.bashrc. Điều này có thể nó không bắt đầu một vỏ phụ.
ctrl-alt-delor 23/2/2015

1
@richard Một cũng có thể chỉ cần gõ lại / dán lệnh này trong trình vỏ tương tác hiện tại.
jimmij 23/2/2015

2

Điều này sẽ xảy ra tự động trên một cài đặt điển hình trên nhiều bản phát hành.
Nếu không, có lẽ bạn đang thiếu bash-completiongói:

  • Ubuntu: sudo apt-get install bash-completion
  • Vòm: sudo pacman -S bash-completion
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.