Linux – копирование файлов и директорий с сохранением прав

Недавно столкнулся с заданием по миграции файловой шары для команд. Нужно было поднять новую шару и перенести все данные. Задумался, как сохранить права к директориям и файлам, чтоб на новом сервере у пользователей не было проблем при подключении и доступах к файлам.

После немногих раздумий и поисков, решение было найденo, будем использовать tar

Для перемещения файлов с сохранением прав нужно:

– Заархивировать в архив файлы и директории.
– Перенести архив на новый сервер.
– Распаковать в необходимо директорию.

Используем следующую команду для создания архива:

tar cvpzf YOUR_ARCHIVE_NAME.tar.gz .

где:

-с: –create создать новый архив.
-v: –verbose печатать вывод о выполнении.
-p: –preserve-permissions, –same-permissions получаем информацию о правах.
-z: –gzip, –gunzip –ungzip.
-f: –file ARCHIVE использовать файл для архива.

Далее нужно архив переместить на новый сервер, после поместить в директорию где хотим распаковать, и разархивировать используя следующую команду:

tar xpvzf YOUR_ARCHIVE_NAME.tar.gz

где:

-z: –extract, –get распаковать файлы с архива.
-с: –create создать новый архив.
-v: –verbose печатать вывод о выполнении.
-p: –preserve-permissions, –same-permissions получаем информацию о правах.
-z: –gzip, –gunzip –ungzip.
-f: –file ARCHIVE использовать файл для архива.

В процессе распаковки tar воссоздает архивированную структуру папок с нетронутыми и не поврежденными правами.

Click to rate this post!
[Total: 0 Average: 0]