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 ответ

Я не могу комментировать, поэтому я пишу здесь.

Насколько я знаю, чтение только означает чтение только - точка. Не читаю, пишу.

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

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