Неожиданный листинг каталога bash с * - PullRequest
9 голосов
/ 12 января 2012

У меня проблема с регистронезависимым списком каталогов в моем bash.например

   $ touch  nohupa nohuPb
   $ ls nohup*
   nohupa  nohuPb

Однако я ожидаю, что это только список nohupa, а не nohuPb.потому что у nohuPb есть заглавная буква P. Я не знаю, какая переменная в моем наборе .bashrc, * которая работает, игнорирует регистр.

Ответы [ 2 ]

9 голосов
/ 12 января 2012

Это nocaseglob, которое вызывает это.

nocaseglob
Если установлено, bash сопоставляет имена файлов без учета регистра при выполнениирасширение пути (см. расширение пути выше).

тестирование

$ touch fooab fooAb
$ ls
fooAb fooab
$ shopt -s nocaseglob
$ ls fooa*
fooAb fooab
$ shopt -u nocaseglob
$ ls fooa*
fooab
2 голосов
/ 12 января 2012

Похоже, ваша оболочка имеет набор nocaseglob. Вы можете сбросить его, используя shell built-in с именем shopt. Используйте параметр -s для enable it и параметр -u для disable it.

Для получения дополнительной информации вы можете посетить здесь .

...