Как скопировать скрытые файлы в Linux
Есть простой способ рекурсивно скопировать все файлы включают скрытые файлы в каталога в другой каталог? Использование Rsync команды является лучшим решением для этого.
# rsync -av --progress /source /destination
Где:
-a: Архивный Режим
-v: Подробный режим
—progress: Показать прогресс в процессе передачи.
Другим решением, вы также можете использовать команду «cp» и рисунок матчей, введите следующую команду:
# cp -R ./[^.]* /destination
Так же можно использовать команду:
# cp -a /test2/{*,.*} /test1/
Так же можете использовать:
# cp /test1/{*,.*} /test2/
Тема «Как скопировать скрытые файлы в Linux’ подошла к завершению, но если есть вопросы, то пишите мне их.
Долго бился над этой проблемой, но обновился до Ubuntu 17.10, дай, думаю, скопирую, получилось так:
cp -rp /home/potapov/ /mnt/disk2/
результат — каталог /potapov/ целиком скопирован в каталог /disk2/, что мне нужно не было. Удалил rm -rf /mnt/disk2/* ; rm -rf /mnt/disk2/.*, т.к. rm не хочет удалять содержимое каталога вместе со скрытыми файлами. Вероятно, нужно сделать каталог активным и можно сделать rm -rf . и все удалиться.
Чтобы скопировать содержимое potapov/ мне пришлось сделать этот каталог активным (cd ~), потом прописал следующее:
cp -rp . /mnt/disk2/ — и вуаля, содержимое potapov переезжает в /mnt/disk2 вместе со всеми скрытыми файлами и каталогами (имя которых начинается на точку «.»).
Сравнение их размеров все же показало незначительное отличие, почему так, пока не выяснил.
# du -s ~
87616 ~
# du -s /mnt/disk2
87720 /mnt/disk2
И последнее, копирование каталога активного пользователя у меня не получилось, т.к. в нем есть кэш файлы, которыми пользуется оболочка и не дает их скопировать. Пришлось выйти в рут и копировать соблюдая наследование прав, чтобы все файлы из home не скопировались с правами root.
Теперь моя задача заставить Ubuntu подумать, что точка монтирования home на другом блочном устройстве. К сожалению описание home с его текущей точкой монтирования изъята из файла /etc/fstab, где искать — ума не приложу.
Если в /etc/fstab нет /home то он не примонтирован, а просто существует там же, где и root. Добавляете /home в fstab, потом делаете перезагрузку