A maneira mais fácil de fazer um padrão glob corresponder aos arquivos de pontos é usar o D
glob qualificador .
**/*(D)
A precedência de ~
é menor que /
, portanto, **~.hg/*
é **
menos as correspondências de .hg/*
. Mas **
é especial apenas se for antes de um /
, portanto, ele corresponde aos arquivos no diretório atual. Para excluir .hg
e seu conteúdo, você precisa
**/*~.hg~.hg/*(D)
Note que o zsh ainda irá percorrer o diretório .hg
, o que pode levar algum tempo; essa é uma limitação de **
: você não pode definir uma lista de exclusão diretamente nesse nível.