Вероятно, сохранять ядро более простым. Я не думаю, что ядро когда-либо ищет Ваш путь для нахождения исполняемого файла. Это обрабатывается библиотекой C. #!
обработка сделана в ядре, которое не использует стандартную библиотеку для C.
Кроме того, я не думаю, что ядро имеет понятие того, каков Ваш путь. $PATH
переменная среды и только обрабатывает, имеют среду. Ядро не делает. Я предполагаю, что это могло получить доступ к среде процесса, который сделал должностное лицо, но я ничто в настоящее время не думаю в ядре никогда переменные среды доступов как этот.
Существует несколько методов:
ls
толькоls lazer_??????
ls
и egrep
ls | egrep '^lazer_.{6}$'
find
find . -regextype posix-egrep -regex '^./lazer_.{6}$'
Как указано SiegeX, один только Shell не понимает регулярных выражений. Если Вы хотите точный фильтр своих файлов, необходимо использовать регулярные выражения и следовательно использовать команду как egrep
.
Здесь, файлы, которые Вы хотите перечислить, начинаются lazer_
и сопровождаются только некоторыми цифрами (возможно более или менее это 6). Я сделал бы это этот путь:
ls | egrep '^lazer_[[:digit:]]*$'
Этот regex работает то же как '^lazer_[0-9]*$'
.
Регулярные выражения с egrep
также повторение дескрипторов точно так же, как в ответе взмаха, если Вы хотите ограничить свой список файлами, заканчивающимися точно 6 цифрами:
ls | egrep '^lazer_[[:digit:]]{6}$'
С zsh
вы можете использовать глобус вроде ? (# CN)
(здесь для флага c
требуется предыдущий ?
, чтобы точно соответствует N
раз):
setopt extendedglob
print -rl -- ?(#c12)
если вы предпочитаете ls
:
ls -d -- ?(#c12)
Вы также можете добавить квалификаторы, например рекурсивный поиск обычных файлов с фиксированной длиной имени:
print -rl -- **/?(#c12)(.)
С ksh93
:
printf '%s\n' {12}(?)
для (не скрытых) файлов, имена которых состоят из 12 символов.
Или, если вы предпочитаете регулярные выражения:
printf '%s\n' ~(E)^.{12}$
ls
только распознайте*
как подстановочный символ? – Lazer 08.01.2011, 19:53?
и[ ]
– wag 08.01.2011, 19:59ls
кто разворачивает подстановочные знаки: это - оболочка, кто делает. – alex 08.01.2011, 20:14.
средства любой отдельный символ, но с шариками, это указано?
. Оболочки понимают globbing, не regex. – SiegeX 08.01.2011, 23:45??????
: <Esc> 6? или Alt-6? – ephemient 09.01.2011, 00:43