This answer reveals that one can copy all files - including hidden ones - from directory src
into directory dest
like so:
mkdir dest
cp -r src/. dest
There is no explanation in the answer or its comments as to why this actually works, and nobody seems to find documentation on this either.
I tried out a few things. First, the normal case:
$ 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
Then, with /.
at the end:
$ 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
So, this behaves simlarly to *
, but also copies hidden files.
$ 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
.
and ..
are proper hard-links as explained here, just like the directory entry itself.
Where does this behaviour come from, and where is it documented?
cp
reference clearly explains howcp -R
works..
and..
are directories just like any other directories, there is nothing magical or mysterious about them..
and..
don't behave like other directories.