% zsh --version
zsh 5.0.2 (x86_64-apple-darwin13.0)
% ls -l
bootstrap/ local_folder/ ssh_confs/ zsh_confs/
Я пытаюсь создать подкаталог с именем "files" во всех каталогах в моей текущей папке .. Я хочу использовать функции zsh globbing ..
% setopt extendedglob
% mkdir -pv */files
zsh: no matches found: */files
% mkdir -pv **/files
zsh: no matches found: **/files
Globbing предназначен для сопоставление с образцом не для генерация паттернов: Он возвращает только список существующих файлов, которые соответствуют шаблону, а не список всех имен, которые могут соответствовать шаблону.
*/files
просто означает "любой существующий сущность с именем 'files' в любом каталоге в текущем рабочем каталоге ".
Вы жестяная банка используйте globbing для получения списка каталогов (и только каталогов) в текущем рабочем каталоге с помощью /
* квалификатор подстановки:
ls -ld *(/)
Чтобы создать подкаталог files в каждом из них, вы можете использовать for
-петля:
for directory in *(/); do mkdir "$directory/files"; done