rsnapshot: как удалить все файлы из дерева, включая каталоги, доступные только для чтения

rsnapshot: как удалить все файлы из дерева, включая каталоги, доступные только для чтения

Я только что обнаружил, что rm -fне могу удалить файлы из дерева, включая каталоги только для чтения. Есть ли альтернативная команда, которая может это сделать? Удаление запускается rnapshot, и я подумал о предоставлении другого значения для "cmd_rm".

Предыстория: я использую rnapshot, который выдает кучу ошибок "отказано в доступе" при удалении папки _delete.XXXXX. Ошибки возникают именно на файлах в каталогах только для чтения. Эти каталоги были созданы автоматически git-annex, поэтому я не могу просто дать им права на запись.

Пример:

Создайте два файла с разными правами записи в каталоге, доступном только для чтения:

$ mkdir моя_дир
$ коснитесь mydir/test1
$ коснитесь mydir/test2
$ chmod aw mydir/test1
$ chmod aw mydir/

Попробуйте удалить этот материал:

$ rm -r моя_каталог/
rm: перейти в защищенный от записи каталог 'mydir'? y
rm: удалить защищённый от записи обычный пустой файл 'mydir/test1'? y
rm: невозможно удалить «mydir/test1»: Отказано в доступе
rm: невозможно удалить 'mydir/test2': Отказано в доступе

Я даже не могу удалить файлы напрямую:

$ rm -rf mydir/test2
rm: невозможно удалить 'mydir/test2': Отказано в доступе

Поиск каталогов, доступных только для чтения, и предоставление им возможности записи перед удалением сработает:

(find /path/to/remove -type d -not -writable | xargs chmod u+w) && rm -rf /path/to/remove

Но команда кажется действительно сложной для довольно простой задачи. Это действительно единственное решение? И как мне сказать rsnapshot сделать такую ​​вещь?

решение1

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

Насколько я знаю, read only означает только чтение и точка. А не чтение и запись.

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

Связанный контент