Como posso criar um alias para um comando para sudo?

Como posso criar um alias para um comando para sudo?

Eu tenho um alias que gostaria de usar tanto como usuário regular quanto como root, via sudo. Especificamente, é isto:

alias rm=trash

Isso funciona bem como um usuário normal e funciona bem quando uso sudo -ipara obter um prompt do shell de root, mas se eu usar sudo rm, o alias não se aplica. Então, onde preciso colocar meu alias para que funcione em comandos sudo únicos?

Responder1

Crie um alias para sudo com um espaço no final:

alias sudo='sudo '

Então todos os outros aliases funcionarão com o sudo.

Mas, como mencionado na outra resposta, o alias rmpara execução trashprovavelmente é uma má ideia. O que eu gosto de fazer é "desabilitar" rmassim:

alias rm='echo "rm is disabled, use trash or /bin/rm instead."'

Com isso você logo adquirirá o hábito de digitar trashem vez de rm.

Responder2

Isso não funcionará, mas se você usar uma função e exportá-la, funcionará.

dl () { trash "$@"; }
export -f dl

É uma má ideia usar o alias rmporque se você adquirir o hábito do alias ou função que o protege e em algum momento o alias não estiver disponível por algum motivo, então você o usa rme ele exclui um monte de coisas que serão difíceis de recuperar .

informação relacionada