Описание тега huawei-u8160
Записка о расширении бандажа против глобализации.
Фигурные скобки-это не подстановка (хотя это различие не так очевидно, в csh/tcsh в котором он возник, как и в других оболочках). Она выполняется перед глоббинг.
Поэтому, когда вы делаете:
СР {А,B}* /дест
Это первый расширена:
СР а* б* /дест
Это означает, что снаряд будет расширить на две капли, то есть получить полный список файлов в два раза и посмотреть, что дважды соответствуют шаблону.
С ЗШ
, это также означает, что если какой-либо из Глоб не соответствует ни один файл, результат всей команды аннулируется (которые можно обойти, включив cshnullglob
возможность вести себя как в csh).
Это также означает, что если у вас есть
СР {а,Ab}* /дест
СР
будет копировать АБ*
файлы дважды.
Это отличается от:
СР @(а|б)* /дест
из КШ
или Баш -о extglob
или ЗШ -о kshglob
, или
СР (а|б)* /дест
из ЗШ
. Нет, это только один шар, так он будет более эффективным, и файлов будет включено только один раз.
С ЗШ
, если у вас есть список префиксов в массив:
префиксы=(АВС, Абд аэр АБ-х ели)
СР -- (${(х:|:)~префиксы})* /дест
(выше, префиксы относятся как Глобс). То есть присоединиться к элементам массивов с |
и рассматривать результат как Глоб (~
).
Если список большой, что вы можете обнаружить, что выполнение СР
завершается "список аргументов слишком длинный" ошибка. В этом случае можно использовать ЗШ
встроенные версии СР
которых вы можете купить погрузка в ЗШ/файлы
модуля (zmodload ЗШ/файлы
).