без учета регистра, список файлов в каталоге, оканчивающийся на .jpg [дубликат]

Будет проще использовать сопоставитель устройств, выполняющий линейное переназначение на базовый диск и монтируя оттуда, поскольку затем вы можете имитировать сбой диска, переключая сопоставитель устройств, чтобы вернуть цель ошибки (например, через использование dmsetup wipe_table). См. https://unix.stackexchange.com/a/144200/134856 для получения информации об этом и других (например, об использовании scsi_debug) методах моделирования ошибок диска.

0
16.12.2018, 18:20
2 ответа

Краткий ответ

Нет. Но тогда lsне имеет способа перечислить окончание файла .jpgс учетом регистра или примечания. Это оболочка, которая преобразует *.jpgв список файлов и передает этот список в ls. Попробуйте echo *.jpg, чтобы получить некоторое представление о том, что делает оболочка.

Длинный ответ

Вы можете использовать find:, например.find. -iname "*.jpg" -o -iname "*.jpeg"

или используйте grep, например.ls | grep -iE "[.]jpe?g$"

или настроить вашу оболочку на нечувствительные к регистру символы:shopt -s nocaseglob(Это работает в Bash, см. Как сопоставить нечувствительные к регистру шаблоны с помощью ls? для решений для других оболочек.)

3
28.01.2020, 02:14

Обратите внимание, что не lsрасширяет подстановочные знаки, а оболочка.

bashможет сделать все свои глобусы нечувствительными к регистру с помощью опции nocaseglob, но, в отличие от ksh93или zsh, не имеет оператора глобуса для наличия одного глобуса или части одного глобуса, нечувствительного к регистру.

Тем не менее, вы всегда можете:

ls -ld -- *.[jJ][pP][gG]

Что также имеет то преимущество, что не оставляет на усмотрение локали решение о том, что является вариантом нижнего или верхнего регистра данной буквы (, например, является ли вариант верхнего регистраgifGIFили GİF? ).

Или с опцией extglob, чтобы также покрытьjpeg:

ls -ld -- *.[jJ][pP]?([eE)[gG]

С zshи с опцией extendedglob(set -o extendedglob):

ls -ld -- *.(#i)jp(e|)g

Сksh93:

ls -ld -- *.~(i)jp?(e)g

Или:

ls -ld -- *.~(i:jp?(e)g)
4
28.01.2020, 02:14

Теги

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