Esta respuesta revela que uno puede copiar todos los archivos, incluidos los ocultos, del directorio src
al directorio de la siguiente dest
manera:
mkdir dest
cp -r src/. dest
No hay una explicación en la respuesta o en sus comentarios sobre por qué esto realmente funciona, y nadie parece encontrar documentación sobre esto tampoco.
Probé algunas cosas. Primero, el 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
Luego, con /.
al 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
Entonces, esto se comporta de manera similar a *
, pero también copia archivos 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
.
y ..
son enlaces duros adecuados como se explica aquí , al igual que la entrada del directorio en sí.
¿De dónde viene este comportamiento y dónde está documentado?
.
, y ..
no se comportan como otros directorios.
cp
referencia explica claramente cómocp -R
funciona..
y..
son directorios como cualquier otro directorio, no hay nada mágico o misterioso en ellos.