Na mensagem de erro, parece que você tem um alias ou função que está redefinindo rm
adicionando parâmetros extras, pois sudo
opera em um ambiente diferente do shell de onde é chamado e geralmente não importa o alias e definições de função dos scripts de inicialização do shell.
Este comando mostra todas as possíveis interpretações do comando rm
:
type -a rm
Além disso, dentro do shell você pode usar $(which rm) ...
em vez de rm ...
para ter certeza de que está usando o executável adequado, pois o programa which
externo não sabe sobre o alias e as definições de função que o O comando interno type
verifica. Um comando com um componente de diretório sempre vai para o sistema de arquivos para encontrá-lo, ignorando aliases e funções.
Note que você não precisa de acesso de gravação a um arquivo para excluí-lo: o que você precisa é de acesso de gravação ao seu diretório pai.