O typeset -U dirstack simples falha, pois dirstack é sem dúvida muito especial para a limitação exclusiva usual (esse typeset é útil para coisas como a matriz path ). Em uma inspeção mais próxima, o código do Arch Wiki sofre de unicidade incompleta, em que somente dirstack somente quando está sendo escrito é feito único, e não com PWD , nem quando lendo o arquivo. Então se PWD contém algo também em dirstack , duplicatas serão criadas e depois lidas. Assim, a correção mais rápida é aplicar a expansão exclusiva na leitura:
dirstack=( ${(uf)"$(< $DIRSTACKFILE)"} )
E talvez também para a gravação de arquivos, o que é mais complicado, já que precisa de um dirstack minus exclusivo, o que quer que esteja em PWD plus PWD .
print -l $PWD ${(u)${dirstack:#$PWD}} >$DIRSTACKFILE