O recurso zsh -specific é zsh globbing; Eu não entendo completamente, mas esses trabalhos.
-
$ a=( **/*.(cpp|h)(.) ); print $#aContará todos os arquivos terminados em
.cppe.hrecursivamente 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).