Я только что обнаружил, что 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 сделать такую вещь?

1 ответ1

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .