Как сохранить права собственности на файл при использовании tar

В настоящее время я пишу автоматическое резервное копирование script для наших серверов. Я использую tar-команду UNIX в script для архивации репозиториев кода.

в моем PERL script Я использую команду tar:

system("tar -jcpf $destPath/$string.tar.bz2 -X $exclusionFile $targetPath");

Я хочу сохранить владельцы файлов при извлечении tar-архива. Я попытался перечислить содержимое tar-архива с помощью

tar -jtvf

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

Есть ли способ извлечь архив tar и сохранить исходные файлы для каждого файла?

Ответы

Ответ 1

Поставьте опцию --same-owner в tar при извлечении.

tar --help сообщает:

   --same-owner
          create extracted files with the same ownership

Ответ 2

Вы хотите "сохранить" атрибуты файла, делая tar -x с помощью переключателя -p. Очевидно, для этого нужно быть root, чтобы получить желаемый результат.

         -p, --insecure, --preserve-permissions
         (x mode only) Preserve file permissions.  Attempt to restore the
         full permissions, including owner, file modes, file flags and
         ACLs, if available,

Многие системы POSIX также отправляют pax, cpio, которые могут работать как альтернативы tar.