¿Cómo puedo asignar un alias a un comando para sudo?

¿Cómo puedo asignar un alias a un comando para sudo?

Tengo un alias que me gustaría utilizar como usuario normal y como root, mediante sudo. En concreto es este:

alias rm=trash

Esto funciona bien como usuario normal y funciona bien cuando lo uso sudo -ipara obtener un indicador de shell raíz, pero si uso sudo rm, el alias no se aplica. Entonces, ¿dónde necesito poner mi alias para que funcione en comandos sudo únicos?

Respuesta1

Crea un alias para sudo con un espacio al final:

alias sudo='sudo '

Entonces todos los demás alias funcionarán con sudo.

Pero como se mencionó en la otra respuesta, el alias rmpara ejecutar trashprobablemente sea una mala idea. Lo que me gusta hacer es "deshabilitar" rmasí:

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

Con esto pronto adquirirás el hábito de escribir trashen lugar de rm.

Respuesta2

Eso no funcionará, pero si usa una función y la exporta, sí funcionará.

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

Es una mala idea utilizar un alias rmporque si adquieres el hábito de que el alias o la función te protejan y en algún momento el alias no está disponible por alguna razón, entonces lo usas rmy elimina un montón de cosas que serán difíciles de recuperar. .

información relacionada