나는 사용한다Windows의 Git BashGit 사용 범위를 넘어서는 많은 bash 작업에 사용됩니다. 수년 동안 잘 작동했지만 대소 문자를 구분하지 않는 동작을 변경할 수 없습니다. 이런 식으로 자동화하는 것은 번거롭습니다.
플래그를 사용해보았습니다
shopt -u nocasematch
설명 .bashrc
된솔루션 #3에서그러나 그것은 문제를 해결하지 못합니다.
솔루션 #1이나 #2 모두 내가 찾고 있는 옵션이 아닙니다. 대문자 별칭, 대소문자 혼합 디렉터리, 일부 모두 소문자 파일, 대소문자 매핑에 대소문자가 너무 많기 때문입니다.
기본이 아닌 Linux 셸에서 대소문자 구분 자동 완성을 활성화하는 방법이 있습니까?
맛이 다르기 때문에 몇 가지 팁이나 제안을 기대했습니다.
答え1
두 가지 설정을 복원해야 하며 다음을 수행해야 nocaseglob
합니다 nocasematch
.
문서( man bash
)는 다음과 같이 씁니다.
nocaseglob
설정된 경우bash
경로 이름 확장을 수행할 때 대소문자를 구분하지 않고 파일 이름을 일치시킵니다. [...]
nocasematch
設定されている場合、条件付きコマンドを実行するときに一致を実行したり、パターン置換単語拡張を実行したり、プログラム可能な完成の一部として可能な完成をフィルタリングしたりするときに、大文字と小文字をbash
区別しない方法でパターンを一致させます。case
[[
私のCygwin環境では、次のように設定されていますoff
(どちらもon
NTFSファイルシステムのWindows中心の使用に使用する必要があり、大文字と小文字を覚えている必要がありますが、大文字と小文字を区別しない* *)。
shopt | grep case
nocaseglob off
nocasematch off
これがあなたの環境に設定されていてon
それを無効にしたい場合(比較時に大文字と小文字を区別するように)、次のコマンドを試してみてください。
shopt -u nocasematch nocaseglob
しかし、これがうまくいかないかもしれないことを指摘したいと思います。 LinuxベースのオペレーティングシステムにインストールされているNTFSファイルシステムは、大文字と小文字を区別します(、、および別々のファイルを作成してアクセスできAbc
ますaBC
)abc
。 Windowsシステムの同じファイルシステムは大文字と小文字を区別しないものとして扱われ、ファイルエクスプローラまたはCygwinは3つのファイルのうちの1つだけにアクセスできます。 3つのファイルのいずれかを開こうとすると、最初の文書のみが返されます。このレベルの詳細は、あなたが要求するよりも多いと思いますが、役に立つ場合に備えて追加するだけです。
追加情報Cygwinから私はそれをテストしていません希望とは反対の構成を施行しているようです。
大文字と小文字を区別するファイル名 Win32サブシステムでは、ファイル名は大文字と小文字が保持されますが、大文字と小文字は区別されません。 AbcやaBcなど、大文字と小文字が異なる同じディレクトリ内の2つのファイルにアクセスすることはできません。 NTFS(および一部のリモートファイルシステム)は大文字と小文字の区別をサポートしますが、NTカーネルはデフォルトでそれをサポートしません。代わりに、レジストリ設定を調整して再起動する必要があります。したがって、Cygwinはこのレジストリ値を変更しない限り、大文字と小文字を区別しません。
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
Cygwinで大文字と小文字を区別するには、レジストリ値を0に設定し、コンピュータを再起動して有効にできます。
他の観点からは、シビン大文字と小文字を区別する自動補完です。ディレクトリDownloads
とディレクトリがあるdances
場合は、ls -d D
Tab1つのディレクトリのみが提供されます。これがまさにあなたが望む動作だと思います。 Git bashにまったく興味がない場合は、Cygwinとそのgit
パッケージを試してみてください。
* NTFS自体は大文字と小文字を区別します。ただし、Windows環境で使用すると大文字と小文字は記憶しますが、大文字と小文字を区別しないようで、私たちが扱うべき部分です。