Jak usunąć .DS_Store z automatycznego uzupełniania wiersza poleceń za pomocą cd?


16

Rozumiem, że .DS_storepliki służą celowi. To powiedziawszy, są uciążliwe podczas automatycznego wykonywania cdpolecenia. Kiedy piszę cdw Terminalu i dwukrotnie wciskam Tab, wyświetla wszystkie katalogi w katalogu roboczym.

Czy istnieje sposób usunięcia .DS_storez tej listy autouzupełniania katalogów w terminalu?


Kiedy piszę cdw Terminalu, wciśnij klawisz Tab dwa razy: pojawi się monit przed wyświetleniem wszystkich możliwości (nie tylko katalogów).
Graham Perrin

To wydaje się lepsze zachowanie; Czy wiesz, jak zapobiec wyświetlaniu plików podczas podwójnego tabulacji po cd?
Jeromy Anglim

cd */następnie dwie zakładki wyświetlają wszystkie podkatalogi bieżącego katalogu. Ale trzeba Backspace, aby wybrać jeden ...
LHF

@lhf Dzięki. Dobrze jest mieć tę opcję. Byłoby lepiej, gdyby cdbył wystarczająco inteligentny, aby domyślnie wyświetlać tylko katalogi.
Jeromy Anglim

Odpowiedzi:


14

export FIGNORE=DS_Store pracuje dla mnie.

Podręcznik GNU Bash zawiera obszerne informacje na temat programowalnego zakończenia .

W szczególności z dokumentacji zmiennych bash

FIGNORE [to] rozdzielona dwukropkami lista sufiksów, które należy zignorować podczas uzupełniania nazw plików. Nazwa pliku, której sufiks odpowiada jednemu z wpisów w FIGNORE, jest wykluczona z listy zgodnych nazw plików. Przykładowa wartość to „.o: ~”

Jeśli obawiasz się, że mogą istnieć istniejące sufiksy FIGNORE, możesz użyć:

export FIGNORE=$FIGNORE:DS_Store

Nie jestem pewien co do ciebie, ale $FIGNORE:.DS_Storedla mnie musiało to być Mac. Nie działał bez „.”
typeoneerror

@typeoneerror, to samo dla mnie. Być może w przeszłości działało tak, jak napisano. Dzięki, że dałeś mi znać.
lhf

1
W systemie macOS Sierra 10.12.5 działa dla mnie tylko wtedy, gdy .

2

Myślę, że tak naprawdę szukasz kontekstowego uzupełniania tabulatorów dla poleceń Bash. Na przykład .DS_Storejest zwykłym plikiem, a nie katalogiem, więc nie powinien być wyświetlany jako możliwe uzupełnienie do cd.

Pakiet, który rozwiązuje ten problem, nazywa się bash-completion. Używam wersji Fink ( fink install bash-completion) i jest ona również dostępna w MacPorts ( port install bash-completion) i Homebrew ( brew install bash-completion).

Po zainstalowaniu pakietu i skonfigurowaniu go w pliku .bashrc lub .bash_profile zwykłe pliki nie będą już wyświetlane jako uzupełnienia dysku CD, a wiele innych typowych poleceń bash również rozpoznaje kontekst (np. gunzip).


1

Gdy pytasz tylko o .DS_Store, myślę, że usunięcie wszystkich ukrytych plików z autouzupełniania będzie ogólnie lepsze. Można to zrobić za pomocą polecenia:

powiązaj „wyłącz pasujące ukryte pliki”

możesz dodać ~ / .bash_profile, aby wywoływać go za każdym razem. Nie spowoduje to całkowitego wyłączenia autouzupełniania ukrytych plików, nadal możesz wpisać „.” (kropka) i naciśnij klawisz Tab.


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.