Из сообщения об ошибке выглядит, как будто у вас есть псевдоним или функция, которая переопределяется rm
путем добавления дополнительных параметров, поскольку sudo
работает в среде, отличной от оболочки, из которой вызывается, и обычно не импортирует псевдонимы и определения функций из инициализации оболочки. скрипты.
Эта команда показывает все возможные интерпретации rm
команды:
type -a rm
Кроме того, внутри оболочки вы можете использовать $(which rm) ...
вместо rm ...
того, чтобы убедиться, что вы используете правильный исполняемый файл, так как внешняя which
программа не знает о псевдонимах и определениях функций, которые type
проверяет внутренняя команда. Команда с компонентом каталога всегда отправляется в файловую систему, чтобы найти ее, тем самым обходя псевдонимы и функции.
Обратите внимание, что вам не нужен доступ на запись к файлу, чтобы удалить его: вам нужен доступ на запись к его родительскому каталогу.