“ls” или regex нечувствительны к регистру?

В ударе я попробовал

ls [a-z]*

и ожидаемый перечислить все файлы с именем файла запускается с маленького алфавита случая. Но почему файлы с именем запускаются с большого алфавита случая, также показаны?

>ls [a-z]*
D  e
>

В случае, если необходимый, версия удара:

удар - версия удар GNU, версия 4.1.5 (1) - выпуск (i486-pc-linux-gnu) Лицензия GPLv3 Copyright (C) 2009 Free Software Foundation, Inc. +: GNU версия 3 GPL или более поздний http://gnu.org/licenses/gpl.html

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
5
задан 01.03.2011, 17:32

2 ответа

Это не regexp, который является, где беспорядок входит. Вместо этого это использует систему, названную "globbing" - см.:

$ man 7 glob

Вместо [a-z] необходимо использовать [[: ниже:]] как таковой:

$ ls -d [[:lower:]]*
3
ответ дан 07.12.2019, 18:02

1) Это может зависеть от Вашей операционной системы, более конкретно Ваша файловая система. Действительно ли Ваша файловая система чувствительна к регистру? Вы не упоминаете ОС или тип файловой системы.

2) удар также может сделать нечувствительный к регистру globbing. Можно проверить, чтобы видеть, является ли это текущим случаем с shopt | grep nocaseglob

Кроме того, как в стороне, помните это ls ничего не делает с файлами. Ваша оболочка является, затем передает имена файлов ls.

1
ответ дан 07.12.2019, 18:02

Теги

Похожие вопросы