nesergen писал(а): ↑01 ноя 2020, 19:46
Данная команда не прокатит. Она не копирует файлы и папки начинающиеся на точку.
Тут вы не совсем правы. Она не копирует только "скрытые" файлы из каталога, который указан в маске "откуда/что". Но вот скрытые файлы в его подкаталогах копирует за милую душу.
Допустим есть такая структура:
Код: Выделить всё
cat1
cat1/.dot1
cat1/.dot2
cat1/.dot3
cat1/cat12
cat1/cat12/.dot4
cat1/cat12/.dot5
cat1/cat12/.dot6
cat2
cat1, cat12, и cat2 - каталоги.
Допустим мы даем команду:
cp -r cat1/* cat2
В этом случае мы получим внутри cat2 не только cat12, но и то что было внутри него - .dot4, .dot5, и .dot6, в виде:
Код: Выделить всё
cat2/cat12/.dot4
cat2/cat12/.dot5
cat2/cat12/.dot6
А вот .dot1, .dot2, и .dot3 скопированы не будут. Да.
Потому, если копировать
cp -r /home /mnt/newplace
- все прекрасно скопируется, т.к. все скрытые файлы будут уже ниже маски. А вот если копировать только содержимое личного каталога cp -r /home/username/* /mnt/newplace - тогда из скрытые файлы верхнего уровня будут пропущены.
Но в любом случае, для копирования домашних каталогов или даже переноса/бекапа все системы лучше использовать не cp а rsync. В простейшем случае, вместо
cp -r /home /mnt/newplace:
rsync -av /home /mnt/newplace.
Ну и в этом конкретном случае команду надо давать от имени root (через sudo) - а то может прав не хватить на все учетки, если там не один домашний каталог.
rsync в отличии от cp лучше справляется с правами доступа и владельцами, не говоря уже о куче других возможностей вроде продвинутой синхронизации содержимого каталогов.