Esta função existe em um dos ~ / .bashrc dos meus usuários:
function rm()
{
ls $*
echo "rm?"
read ans
if [ "$ans" == 'y' ]; then
/bin/rm $*
fi
}
No meu script ksh que os usuários precisam executar, eu tenho uma linha como esta:
[[ "$KEEP" = "" ]] && \rm $FILE
Enquanto a barra invertida escapa aliases definidos pelo usuário, não impede que o script execute funções definidas pelo usuário com o mesmo nome. Como resultado, a função rm () do meu usuário é chamada em vez da função do sistema.
Encontrei essa pergunta e resposta da pergunta do superusuário, mas a resolução se aplica apenas a uma função interna, não a um comando do sistema.
Qual é o melhor para impor o comando rm de ser chamado, e não um alias ou função? Preciso especificar o caminho completo para a rm e todos os comandos do sistema que eu quero garantir que sejam executados corretamente? Existe uma maneira melhor?