Порядок устройств в ядре больше не гарантируется. Именно по этой причине большинство дистрибутивов переключились на другие способы определения корневой файловой системы. Вы можете выполнить одно из следующих действий:
Использовать помеченную файловую систему:
tune2fs -L / /dev/mmcblkXpY
(это безопасно делать, когда файловая система смонтирована ). Теперь загрузитесь сroot=LABEL=/
Использовать UUID:
blkid /dev/mmcblkXpY
... сообщит вам, что такое UUID вашей файловой системы. Загрузитесь сroot=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
В zsh
и с включенной опцией extendedglob
вы можете выполнить:
$ set -o extendedglob
$ printf '%s\n' (#i)path/to/file
Path/to/FILE
Получить path/to/file
с кейсом.
Вksh93
:
$ printf '%s\n' ~(i)path/to/file
Path/to/FILE
(имейте в виду, что если совпадений нет, это расширится до ~(i)path/to/file
, ksh93 не имеет эквивалента параметрам nomatch
или failglob
, хотя вы можете использовать ~(Ni)path/to/file
, чтобы это расширялось до нуля, когда это не так. т матч)
В bash
с включенными опциями extglob
, failglob
и nocaseglob
вы можете выполнить:
$ shopt -s extglob failglob nocaseglob
$ printf '%s\n' @(path)/@(to)/@(file)
Path/to/FILE
Без extglob
вы также можете выполнить printf '%s\n' [p]ath/[t]o/[f]ile
, хотя это сложнее надежно автоматизировать.
(в любом случае под оболочкой делает эквивалент вашего ls | grep -i
, то есть он должен прочитать полное содержимое каталога, чтобы найти подходящие файлы. Обратите внимание, что, как и для grep -i
, сравнение регистров выполняется в соответствии с локалью, оно может отличаться от того, как NTFS выполняет сравнение регистров )
Не совсем то, что вы просили, но может вас заинтересовать.
Я это где-то взял, не помню, но работает:
Case Sensitve NTFS
You can't enable case sensitivity for a single folder or volume on Windows, but you can do it for the whole system.
You need to change the value of the Registry key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
from 1 to 0 and reboot the system.
Если вы это сделаете, вам также необходимо изменить с posix=0
на posix=1
любое крепление на /etc/fstab
например:
d:\cyg_pub /pub NTFS binary,posix=1,nouser 0 0
после этого
$ cd /tmp
$ touch Pippo
$ touch PIppo
$ touch PIPpo
$ ls P*
Pippo PIppo PIPpo