Я только что обнаружил, что rm -f
не может удалять файлы из дерева, включая каталоги только для чтения. Есть ли альтернативная команда, которая может это сделать? Удаление вызвано rnapshot, и я подумал о предоставлении другого значения для "cmd_rm".
Предыстория: я использую rnapshot
который выдает множество ошибок "Отказано в доступе" при удалении папки _delete.ХХХХХ. Ошибки возникают именно на файлах в каталогах только для чтения. Эти каталоги были созданы автоматически git-annex, поэтому я не могу просто дать им права на запись.
Пример:
Установите два файла с разными разрешениями на запись в каталоге только для чтения:
$ mkdir mydir $ touch mydir/test1 $ touch mydir/test2 $ chmod a-w mydir/test1 $ chmod a-w mydir/
Попробуйте удалить материал:
$ rm -r mydir/ rm: descend into write-protected directory ‘mydir’? y rm: remove write-protected regular empty file ‘mydir/test1’? y rm: cannot remove ‘mydir/test1’: Permission denied rm: cannot remove ‘mydir/test2’: Permission denied
Я не могу даже удалить файлы напрямую:
$ rm -rf mydir/test2 rm: cannot remove ‘mydir/test2’: Permission denied
Поиск доступных только для чтения каталогов и создание их для записи перед удалением работает:
(find /path/to/remove -type d -not -writable | xargs chmod u+w) && rm -rf /path/to/remove
Но команда, кажется, действительно вовлечена в довольно простую задачу. Это действительно единственное решение? А как я могу сказать rsnapshot сделать такую вещь?