Acabei de descobrir que rm -f
não é possível remover arquivos de uma árvore, incluindo diretórios somente leitura. Existe um comando alternativo que pode fazer isso? A remoção é acionada pelo rnapshot e pensei em fornecer um valor diferente para "cmd_rm".
O pano de fundo: estou usando rnapshot
o qual emite muitos erros "permissão negada" ao remover a pasta _delete.XXXXX. Os erros ocorrem exatamente em arquivos em diretórios somente leitura. Esses diretórios foram criados automaticamente pelo git-annex, então não posso simplesmente conceder a eles permissões de gravação.
Exemplo:
Configure dois arquivos com permissões de gravação diferentes em um diretório somente leitura:
$ mkdir meudir $ toque em meudiretório/teste1 $ toque meudir/test2 $ chmod aw meudir/test1 $ chmod aw meudir/
Tente remover as coisas:
$ rm -r meudir/ rm: descer para o diretório protegido contra gravação 'mydir'? sim rm: remover arquivo vazio normal protegido contra gravação 'mydir/test1'? sim rm: não é possível remover 'mydir/test1': permissão negada rm: não é possível remover 'mydir/test2': permissão negada
Não consigo nem remover os arquivos diretamente:
$ rm -rf meudir/teste2 rm: não é possível remover 'mydir/test2': permissão negada
Pesquisar os diretórios somente leitura e torná-los graváveis antes da remoção funcionar:
(encontre /caminho/para/remover -type d -not -writable | xargs chmod u+w) && rm -rf /caminho/para/remover
Mas o comando parece realmente envolvido em uma tarefa bastante simples. Esta é realmente a única solução? E como posso dizer ao rsnapshot para fazer uma coisa dessas?
Responder1
Não posso comentar, então estou escrevendo aqui.
Até onde eu sei, somente leitura significa somente leitura - ponto final. Não ler escrever.
Eu acho que você teria que montar seu diretório para leitura e gravação.