Как перенести права доступа к файлам из одной папки в другую?

Я сделал cp -r для папки (копия) , затем удалил оригинал. У меня есть резервная копия с большинством файлов. Как мне восстановить права доступа к файлам & amp; папки на копии с помощью бэкапа?

Было бы очень утомительно входить и делать chmod XXX filename каждый элемент там.

2
задан 27 July 2012 в 06:49

3 ответа

Какую резервную систему вы используете? Если это резервная копия Ubuntu, вы можете восстановить оригинал, используя nautilus. Щелкните правой кнопкой мыши в родительской папке и выберите «Восстановить отсутствующие файлы» из меню.

0
ответ дан 27 July 2012 в 06:49

Вы можете использовать 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», поэтому он просто печатает, что будет делать.

0
ответ дан 27 July 2012 в 06:49

используйте 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) опция.

0
ответ дан 27 July 2012 в 06:49

Другие вопросы по тегам:

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