Разрешения на каталоги при извлечении tar построен из списка файлов

359
jbk

Я создаю tar-файл из списка файлов с опцией -T. При извлечении файла tar разрешения подкаталога являются root: root, а не разрешения для самого каталога? Любые идеи, как это исправить?

Пример:

# cat filelist.txt

file1.txt

dir1 / file2.txt

dir1 / dir2 / file3.txt

# tar cf files.tar -T filelist.txt

# tar xf files.tar

Владение извлеченными файлами совпадает с первоначальным владением для file1.txt, file2.txt и file3.txt. Владение для dir1 и dir2 не совпадает. Владелец - root: root

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

0

1 ответ на вопрос

0
AFH

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

1) Добавьте каталоги в свой список файлов:

file1.txt dir1 dir1/file2.txt dir1/dir2 dir1/dir2/file3.txt 

2) Добавьте --no-recursionстроку запуска резервного копирования, чтобы остановить включение всех остальных файлов в каталогах:

tar cf files.tar --no-recursion -T filelist.txt 

Обратите внимание, что порядок важен: каталоги должны предшествовать любой ссылке в подкаталоге или файле; и --no-recursionпараметр должен идти до -T, но после cf FileNameкоманды.

Спасибо, я этого боялась. В этом посте я обнаружил магию awk, которая добавит каталоги в мой список файлов. https://serverfault.com/questions/877254/tar-does-not-retain-directory-permissions/ jbk 6 лет назад 0

Похожие вопросы