Czasami podczas uzyskiwania dostępu do różnych katalogów zdarza się, że większość razy pamiętam nazwy lub przynajmniej część nazw katalogu w naszym systemie Linux. Ale niektóre katalogi są nazwane zaczynając od wielkich liter pierwszego znaku lub jednego ze znaków w środku nazwy Wielkie litery.
Czy ktoś może zasugerować, w jaki sposób mogę cd
ustawić argumenty występujące po poleceniu INSENSITIVE, na przykład, jeśli wykonam cd BackupDirectory
lub cd backupdirectory
może wprowadzić nazwę katalogu BackupDirectory.
Oczywiście nie chcę przekręcać tego innym użytkownikom, więc jeśli powyższe jest możliwe, czy to możliwe, że zmiana może zostać zastosowana tylko do sesji, z której korzystam i nie wpływa na innych użytkowników?
Ok, próbowałem, set completion-ignore-case
ale to po prostu nie działa. To po prostu pomaga tym, że jeśli I typu cd b
i Tabczy Esc Escwypełnia nazwę katalogu ignorując sprawę. Ale potrzebuję, jeśli to zrobię cd backupdirectory
, to po prostu ignoruje sprawę i wchodzi BackupDirectory
samodzielnie.
źródło
backUP
ibackUp
jakbackup
możesz nie przejść do katalogu, do którego chcesz przejść?mc
przejście na GUI? Ułatwia życie.Odpowiedzi:
Włączenie
cdspell
pomoże:Ze
man
strony:źródło
Grzmotnąć
set completion-ignore-case on
w~/.inputrc
(lubbind 'set completion-ignore-case on'
w~/.bashrc
) byłoby moją rekomendacją. Jeśli masz zamiar wpisać pełną nazwę, po co Shiftnaciskać kilka klawiszy?Ale jeśli naprawdę tego chcesz, oto opakowanie,
cd
które próbuje dokładnie dopasować, a jeśli nie, szuka dopasowania bez rozróżniania wielkości liter i wykonuje je, jeśli jest unikalne. Używanocaseglob
opcji powłoki do globowania bez rozróżniania wielkości liter i zamienia argument w glob, dołączając@()
(który nie pasuje do niczego i wymagaextglob
).extglob
Opcja musi być włączona przy definiowaniu funkcji, inaczej bash nie można nawet analizować je. Ta funkcja nie obsługujeCDPATH
.Ksh
W tym momencie jest podobna funkcja dla ksh93.
~(i)
Zmodyfikowane do uwzględniania wielkości liter dopasowywania wydaje się być niezgodne z/
przyrostkiem, aby dopasować katalogów tylko (może to być błąd w moim wydaniu ksh). Dlatego używam innej strategii, aby usunąć nie-katalogi.Zsh
Wreszcie, oto wersja zsh. Ponownie, umożliwienie bez rozróżniania wielkości liter jest prawdopodobnie najlepszą opcją. Następujące ustawienie wraca do globowania bez rozróżniania wielkości liter, jeśli nie ma dopasowania dokładnego:
Usuń,
''
aby wyświetlić wszystkie dopasowania bez rozróżniania wielkości liter, nawet jeśli istnieje dopasowanie dokładnie z uwzględnieniem wielkości liter. Możesz to ustawić w interfejsie menucompinstall
.źródło
inputrc
, aby działał. W ten sposób:echo "set completion-ignore-case on" >> ~/.inputrc
cd:cd:17: no such file or directory: videos
(mam dir o nazwieVideos
)emulate -L zsh
naemulate -LR zsh
? (Nawiasem mówiąc, właśnie naprawiłem błąd, który powinien był byćemulate -L zsh
, nieemulate zsh
, w przeciwnym razie zepsułby to twoje opcje powłoki.)