rsnapshot: как удалить все файлы из дерева, включая директории только для чтения
Я только что обнаружил, что rm -f
не может удалить файлы из дерева, включая каталоги только для чтения. Есть ли альтернативная команда, которая может это сделать? Удаление вызвано rnapshot, и я подумал о предоставлении другого значения для "cmd_rm".
Фон: я использую rnapshot
который выдает множество ошибок "Отказано в доступе" при удалении папки _delete.XXXXX. Ошибки возникают именно на файлах в каталогах только для чтения. Эти каталоги были созданы автоматически git-annex, поэтому я не могу просто дать им права на запись.
Пример:
Установите два файла с разными разрешениями на запись в каталоге только для чтения:
$ mkdir mydir $ touch mydir/test1 $ touch mydir/test2 $ chmod aw mydir/test1 $ chmod aw mydir /
Попробуйте удалить материал:
$ rm -r mydir / rm: спуститься в защищенную от записи директорию 'mydir'? Y rm: удалить защищенный от записи обычный пустой файл 'mydir/test1'? Y rm: не может удалить "mydir/test1": в доступе отказано rm: не может удалить "mydir/test2": в доступе отказано
Я не могу даже удалить файлы напрямую:
$ rm -rf mydir/test2 rm: не может удалить "mydir/test2": в доступе отказано
Поиск доступных только для чтения каталогов и создание их для записи перед удалением работает:
(найти / путь / к / удалить -тип d -не-записываемый | xargs chmod u+w) && rm -rf / путь / к / удалить
Но команда кажется действительно вовлеченной для довольно простой задачи. Это действительно единственное решение? А как я могу сказать rsnapshot сделать такую вещь?
1 ответ
Я не могу комментировать, поэтому я пишу здесь.
Насколько я знаю, чтение только означает чтение только - точка. Не читаю, пишу.
Я полагаю, вам нужно будет смонтировать каталог для чтения и записи.