Этот ответ показывает, что можно скопировать все файлы, включая скрытые, из каталога src
в каталог dest
следующим образом:
mkdir dest
cp -r src/. dest
В ответе или его комментариях нет объяснения, почему это действительно работает, и, похоже, никто не находит документацию по этому вопросу.
Я опробовал несколько вещей. Во-первых, нормальный случай:
$ 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
Затем с /.
в конце:
$ 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
Таким образом, это ведет себя аналогично *
, но также копирует скрытые файлы.
$ 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
.
и ..
являются правильными жесткими ссылками, как объяснено здесь , так же, как и сама запись каталога.
Откуда происходит это поведение и где оно задокументировано?
.
и ..
не ведите себя как другие каталоги.
cp
Ссылка ясно объясняет , какcp -R
работает..
и..
каталоги, как и любые другие каталоги, в них нет ничего волшебного или таинственного.