Faz * corresponder arquivos ocultos no tar mesmo com o dotglob não definido?

2

Tive a impressão de que o * glob não corresponde aos arquivos com prefixo de ponto, a menos que você ative manualmente essa funcionalidade (por meio do dotglob ou equivalente ao seu shell).

No entanto, se eu tiver um diretório a contendo arquivos file1 e .hidden1 , então, se eu fizer

tar -cvpjf backup.tar.bz2 --exclude 'a/*' a

o arquivo tar resultante contém apenas o diretório vazio a e nenhum rastreio do arquivo oculto ou não oculto. Minha expectativa teria sido apenas o% não ocultadofile1 teria sido excluído.

O que está acontecendo aqui?

    
por fpghost 11.01.2014 / 23:40

1 resposta

1
Primeiro, desde que você colocou o caractere curinga entre aspas simples, ele é expandido em tar , em vez de seu shell, portanto, sua opção dotglob não terá efeito.

O caractere curinga tar de * corresponde a tudo, incluindo pontos e barras (como indicado na documentação que você encontrou ), então você terá que excluir arquivos começando com um ponto da exclusão :

tar -cvpjf backup.tar.bz2 --exclude 'a/[^.]*' a
    
por 12.01.2014 / 00:08