Qual é o significado do ponto nos comandos bash e como ele é diferente de um asterisco?

11

Estou tentando entender o significado do ponto no bash e como ele difere de um asterisco. Alguém pode por favor elaborar? Por exemplo, qual é a diferença entre cp -ar /foo/. /foo2/ e cp -pr /foo/* /foo2/

    
por Mike B 21.01.2013 / 21:53

1 resposta

11

O ponto ( . ) é apenas o diretório . dentro de um diretório que é o mesmo que o próprio diretório ( ls -la /foo mostrará a você). Portanto, se você copiar foo/. em outro lugar, copiará efetivamente toda a árvore abaixo de foo sem copiar foo (você está copiando em foo2/. , que é o mesmo que foo2 ).

/foo/* é expandido pelo shell para a lista de diretórios e arquivos não ocultos em /foo , portanto, copiaria a mesma estrutura de diretórios em /foo para /foo2 , exceto para os dotfiles / dotdirs. Efetivamente, cp receberá (potencialmente) muitos argumentos. Se a lista for muito grande, pode até mesmo causar a falha na execução de cp .

    
por 21.01.2013 / 22:21