Làm cách nào để xóa .DS_Store khỏi tự động hoàn thành dòng lệnh bằng cd?


15

Tôi hiểu rằng .DS_storecác tập tin phục vụ một mục đích. Điều đó nói rằng, chúng là một phiền toái khi tự động hoàn thành với cdlệnh. Khi tôi gõ cdvào Terminal và nhấn tab hai lần, nó liệt kê tất cả các thư mục trong thư mục làm việc.

Có cách nào để loại bỏ .DS_storekhỏi danh sách thư mục tự động hoàn thành này trong thiết bị đầu cuối không?


Khi tôi gõ cdvào Terminal thì phím Tab hai lần: có một dấu nhắc trước khi tất cả các khả năng (không chỉ thư mục) được liệt kê.
Graham Perrin

Đó dường như là hành vi tốt hơn; Bạn có biết làm thế nào để ngăn chặn danh sách các tập tin khi lập bảng đôi sau cd không?
Jeromy Anglim

cd */theo sau là hai tab liệt kê tất cả các thư mục con của thư mục hiện tại. Nhưng bạn phải lùi lại để chọn một ...
lhf

@lhf Cảm ơn. Thật tốt khi có lựa chọn đó. Sẽ tốt hơn nếu cdđủ thông minh để chỉ liệt kê các thư mục theo mặc định.
Jeromy Anglim

Câu trả lời:


13

export FIGNORE=DS_Store làm việc cho tôi

Các thủ GNU Bash cung cấp thông tin đầy đủ trên các dữ liệu có thể lập trình .

Cụ thể, từ tài liệu về các biến bash

FIGNORE [là một danh sách các hậu tố được phân tách bằng dấu hai chấm để bỏ qua khi thực hiện hoàn thành tên tệp. Tên tệp có hậu tố khớp với một trong các mục trong FIGNORE được loại trừ khỏi danh sách tên tệp phù hợp. Giá trị mẫu là '.o: ~'

Nếu bạn lo ngại rằng có thể có các hậu tố hiện có FIGNORE, thì bạn có thể sử dụng:

export FIGNORE=$FIGNORE:DS_Store

Không chắc chắn về bạn, nhưng nó đã được $FIGNORE:.DS_Storetrên mac cho tôi. Không làm việc mà không có "."
typeoneerror

@typeoneerror, tôi cũng vậy. Có lẽ trong quá khứ nó làm việc như được đăng. Cảm ơn vì đã cho tôi biết.
lhf

1
Trong macOS Sierra 10.12.5, nó chỉ hoạt động với tôi nếu tôi bỏ qua.

2

Tôi nghĩ rằng những gì bạn thực sự tìm kiếm là hoàn thành tab nhận biết ngữ cảnh cho các lệnh Bash. Ví dụ, .DS_Storelà một tệp thông thường, không phải là một thư mục, vì vậy nó không nên hiển thị dưới dạng hoàn thành có thể cd.

Gói giải quyết vấn đề này được gọi bash-completion. Tôi sử dụng phiên bản của Fink ( fink install bash-completion) và nó cũng có sẵn từ MacPorts ( port install bash-completion) và Homebrew ( brew install bash-completion).

Sau khi gói được cài đặt và định cấu hình trong .bashrc hoặc .bash_profile của bạn, các tệp thông thường sẽ không còn hiển thị dưới dạng hoàn thành cho cd và nhiều lệnh bash phổ biến khác cũng trở thành nhận biết ngữ cảnh (ví dụ. gunzip).


1

Trong khi bạn chỉ hỏi về .DS_Store tôi nghĩ rằng việc xóa tất cả các tệp ẩn khỏi tự động hoàn thành sẽ tốt hơn nói chung. Điều này có thể được thực hiện bằng lệnh:

liên kết 'đặt tập tin khớp-ẩn-tắt'

bạn có thể thêm nó ~ / .bash_profile để nó được gọi mỗi lần cho bạn. Điều này sẽ không vô hiệu hóa tự động hoàn thành cho các tệp ẩn hoàn toàn, bạn vẫn có thể nhập '.' (chấm) và nhấn tab cho nó.


-1

Tôi sẽ sử dụng lệnh này:

zip -r foo.zip foo -x "*.DS_Store"

Tìm thấy ở đây: /superuser/198569/compressing- Folders-on-a-mac-without-the-ds-store


Làm thế nào để giải quyết vấn đề xóa .DS_Store khỏi tự động hoàn thành?
grg

Vâng, thực sự không. Nhưng tôi tình cờ thấy trang đó trong khi tìm kiếm "mac zip mà không có .DS_STORE". Vì vậy, tôi nghĩ rằng có lẽ nó có thể giúp đỡ người khác. Có lẽ đó là một ý tưởng tồi.
ling
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.