Como posso alias um comando para o sudo?

5

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

alias rm=trash

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

    
por Ryan Thompson 25.09.2010 / 20:06

2 respostas

10

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

alias sudo='sudo '

Em seguida, todos os outros aliases funcionarão com o sudo.

Mas, como mencionado na outra resposta, o aliasing rm para executar trash é provavelmente uma má ideia. O que eu gosto de fazer é "desabilitar" rm assim:

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

Com isso, você logo adquirirá o hábito de digitar trash em vez de rm .

    
por 26.01.2012 / 13:14
1

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

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

É uma má idéia alias rm porque se você adquirir o hábito do alias ou da função que o protege e em algum momento o alias não estiver disponível por algum motivo, então você usa rm e exclui um grupo de coisas que serão difíceis de recuperar.

    
por 25.09.2010 / 20:12