Inclua .dotfiles ao expandir *

Sempre chateado que você fez algo como

cp -r ~/foo/* .

apenas para descobrir que todos os arquivos de ponto ocultos dentro de foo / não foram copiados junto?

Isso ocorre porque shells (zsh e bash, pelo menos) excluem arquivos ocultos ao expandir o caractere curinga (*).

Zsh tem uma opção [1] para você incluí-los:

setopt globdots

No bash é um pouco diferente [2]:

export GLOBIGNORE=. 

Ambos os mecanismos irão novamente excluir os diretórios .e ..de serem correspondidos.

Isso afetará qualquer comando que você digitar usando o caractere curinga (*) no início do padrão de correspondência, como ls *, mv *e assim por diante.

[1] http://zsh.sourceforge.net/Intro/intro_16.html
[2] http://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html