Diese Antwort zeigt, dass man alle Dateien - auch versteckte - wie folgt von Verzeichnis src
zu Verzeichnis kopieren kann dest
:
mkdir dest
cp -r src/. dest
Es gibt keine Erklärung in der Antwort oder ihren Kommentaren, warum dies tatsächlich funktioniert, und niemand scheint Dokumentation dazu zu finden.
Ich habe ein paar Dinge ausprobiert. Zunächst der Normalfall:
$ 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
Dann mit /.
am Ende:
$ 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
Das verhält sich also ähnlich *
, kopiert aber auch versteckte Dateien.
$ 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
.
und ..
sind richtige Hardlinks, wie hier erklärt , genau wie der Verzeichniseintrag selbst.
Woher kommt dieses Verhalten und wo ist es dokumentiert?
.
und ..
nicht wie andere Verzeichnisse verhalten.
cp
Referenz erklärt klar, wie escp -R
funktioniert..
und..
Verzeichnisse sind genau wie alle anderen Verzeichnisse, es gibt nichts Magisches oder Geheimnisvolles an ihnen.