O recurso zsh
-specific é zsh globbing; Eu não entendo completamente, mas esses trabalhos.
-
$ a=( **/*.(cpp|h)(.) ); print $#a
Contará todos os arquivos terminados em
.cpp
e.h
recursivamente no diretório atual e, em seguida, imprimirá o resultado como um único número. -
De esta resposta , também posso usar:
$ ls **/*.{cpp,h} | wc -l
A parte específica zsh
, portanto, é a expansão de **/*.{cpp,h}
para corresponder aos arquivos que terminam em .cpp
e .h
. Ainda não encontrei nenhuma (simples) abrangente de zsh globbing que eu tenha sido capaz de entender (embora isso explica o uso de **/*.{a,b}
razoavelmente bem).