Você parece estar usando o GNU tar . Correspondência de padrões no GNU tar funciona em todo o caminho e não Parar em / caracteres. Como você está usando ./ para sua lista de arquivos, isso significa que cada arquivo corresponderá a ./* , que também corresponde a .?* . Eu tentaria algo como --exclude='.[^/]*' , talvez.