rsnapshot: como remover todos os arquivos de uma árvore, incluindo diretórios somente leitura

0

Acabei de descobrir que rm -f não pode remover arquivos de uma árvore, incluindo diretórios somente leitura. Existe um comando alternativo que pode fazer isso? A remoção é disparada pelo rnapshot e pensei em fornecer um valor diferente para "cmd_rm".

O fundo: Estou usando rnapshot , que 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 eu não posso simplesmente dar 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 mydir
$ touch mydir/test1
$ touch mydir/test2
$ chmod a-w mydir/test1 
$ chmod a-w mydir/

Tente remover o material:

$ 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

Eu não consigo nem remover os arquivos diretamente:

$ rm -rf mydir/test2
rm: cannot remove ‘mydir/test2’: Permission denied

Pesquisando diretórios somente leitura e tornando-os graváveis antes que a remoção funcione:

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

Mas o comando parece realmente envolvido para uma tarefa bastante simples. Essa é realmente a única solução? Como posso dizer ao rsnapshot para fazer uma coisa dessas?

    
por Erwin411 24.10.2014 / 11:19

1 resposta

0

Não posso comentar, por isso estou escrevendo aqui.

Tanto quanto sei, somente leitura significa somente leitura - ponto final. Não leia gravação.

Eu acho que você teria que montar seu diretório como escrever.

    
por 24.10.2014 / 11:22