Ruby Fileutils.cp_r Отказано в доступе, когда:preserve => true

Я пытаюсь реализовать скрипт резервного копирования / зеркалирования бедного человека, и у меня возникли некоторые проблемы.

Я нахожусь на Windows-XP, используя модуль FileUtils Руби для рекурсивного копирования файлов.

Пока я не установил флаг:preserve в true, все работает нормально.

Работает:

FileUtils.cp_r('Source_dir', 'Dest_dir', :verbose => true)

Не работает:

FileUtils.cp_r('Source_dir', 'Dest_dir', :verbose => true, :preserve => true)

У меня есть полные права доступа к Dest_dir, так как он находится на рабочем столе моей локальной машины, и я только что создал его. Я могу копировать и удалять файлы и папки, но, видимо, меняю или поддерживаю атрибуты файла с помощью:preserve не работает. У меня не было возможности попробовать это на компьютере Mac или Linux, но, читая в Интернете, флаг:preserve является нормальным камнем преткновения, с которым приходится сталкиваться в среде Windows.

В аналогичной строке вопроса, каково поведение по умолчанию для FileUtils.cp_r, когда он встречает существующий файл в целевом каталоге? Просто перезапишите и замените все в Destination тем, что находится в Source, или я могу пропустить файл с конфликтами и просто зарегистрировать его для разрешения позже? (Если это будет отдельный вопрос, просто дайте мне знать, и я сделаю один.)

Спасибо,

спенсер

1 ответ

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

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