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