Я сделал cp -r
для папки (копия) , затем удалил оригинал. У меня есть резервная копия с большинством файлов. Как мне восстановить права доступа к файлам & amp; папки на копии с помощью бэкапа?
Было бы очень утомительно входить и делать chmod XXX filename
каждый элемент там.
Какую резервную систему вы используете? Если это резервная копия Ubuntu, вы можете восстановить оригинал, используя nautilus. Щелкните правой кнопкой мыши в родительской папке и выберите «Восстановить отсутствующие файлы» из меню.
Вы можете использовать stat
для запроса режима в вашем файле резервной копии и chmod
для обновления ваших рабочих файлов. Сделайте это в цикле, с небольшими манипуляциями со строками, и у вас есть решение. Примерно так должно работать для копирования разрешений:
# path to the top level of the backup
backup_dir=/path/to/backup/dir
# path to the directory of files that you want to restore
# permissions on.
dir=/path/to/working/dir
find "$backup_dir" |
while read backup_file
do
new_file="$dir${backup_file#$backup_dir}"
chmod --reference="$backup_file" "$new_file"
done
Обратите внимание, что это не будет работать хорошо, если ваши имена файлов содержат символ перевода строки (но это довольно редко). Кроме того, он не проверен, поэтому вы можете выполнить «пробный запуск», изменив «chmod» на «echo chmod», поэтому он просто печатает, что будет делать.
используйте cp -a
или, в более общем случае, cp --preserve=all
со страницы руководства
--preserve[=ATTR_LIST] preserve the specified attributes (default: mode,owner‐ ship,timestamps), if possible additional attributes: context, links, xattr, all
chmod
также имеется рекурсивная (-R
) опция.