Esta resposta revela que é possível copiar todos os arquivos - incluindo os ocultos - do diretório src
para o diretório da seguinte dest
maneira:
mkdir dest
cp -r src/. dest
Não há explicação na resposta ou em seus comentários sobre por que isso realmente funciona e ninguém parece encontrar documentação sobre isso também.
Eu tentei algumas coisas. Primeiro, o caso normal:
$ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file
$ cp -r src dest
$ ls -A dest
dest_file src
Então, com /.
no final:
$ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file
$ cp -r src/. dest
$ ls -A dest
dest_file .dotfile src_dir src_file
Portanto, isso se comporta de maneira semelhante a *
, mas também copia arquivos ocultos.
$ mkdir src src/src_dir dest && touch src/src_file src/.dotfile dest/dest_file
$ cp -r src/* dest
$ ls -A dest
dest_file src_dir src_file
.
e ..
são links físicos adequados, conforme explicado aqui , assim como a própria entrada do diretório.
De onde vem esse comportamento e onde está documentado?
.
e ..
não se comporta como outros diretórios.
cp
referência explica claramente comocp -R
funciona..
e..
são diretórios como qualquer outro diretório, não há nada de mágico ou misterioso neles.