Por ejemplo, un alias común que he visto en el ~/.bashrc
archivo (o equivalentes) es
alias rm='rm -i'
Sin embargo, he visto a personas recomendar contra esto porque
- Es posible que el alias no exista en otro sistema y, dado que te has descuidado
rm
, eliminas inadvertidamente algo importante. [1] - Al usar este alias, en efecto, te entrenas para escribir
y
oyes
después de cadarm
comando, lo que anula todo el propósito.
¿Hay otras razones para recomendar en contra de esto? ¿Podrían algunos programas simplemente hacer llamadas en rm
lugar de \rm
, y el alias podría causarles problemas?
Lo uso rm
simplemente como ejemplo, pero también he visto otros comandos como cp
o mv
cubiertos por alias. Personalmente, me estoy entrenando lentamente para usar un alias como este en lugar de rm -i
:
alias trash=`mv -v -t $HOME/.Trash`
shell
command-line
alias
Ricardo Altamirano
fuente
fuente
rm -i
, me entrena un poco más para agregar automáticamente la-f
bandera.rm -i
a lo que quieras. Tales comodel
,irm
etc. No necesita aliasrm
. Esto evita el punto 1, y usando selectivamentedel
orm
dependiendo de lo que desee, también evita el punto 2 hasta cierto punto.Respuestas:
Suponiendo que está utilizando bash, esto no debería causar problemas para los scripts, ya que los shells de bash no interactivos no se originan
~/.bashrc
o~/.bash_profile
(lo que probablemente sea donde se ubican sus alias, o es el primer paso para obtener sus alias en otro script) . Sin embargo, puede causar problemas si está comprando scripts:Su pregunta cubre la mayor parte de la preocupación general sobre el alias sobre los comandos existentes, el principal es que los entornos desconocidos que parecen ser los mismos a primera vista podrían producir resultados muy diferentes. Por ejemplo, aliasing
rm
arm -i
tiene buenas intenciones, pero es malo en la práctica por las razones que estatales.fuente
Por supuesto:
(3) Porque un día espero agregar a los cimientos construidos por las personas [-----------] y paranoicas que castigan a los demás por aliasar los comandos estándar, aunque el alias de los comandos estándar es, bueno, estándar .
En serio, estas son solo advertencias. Si confías en ti mismo para no caer en ninguno de esos pozos de fatalidad, entonces ten cuidado y sigue adelante.
Personalmente, alias muy pocos comandos estándar; Utilizo ligeras variaciones porque soy, solo un poco, paranoico y anal retentivo. Pero un buen uso que he encontrado para esto es con respecto a los sistemas en los que a menudo inicio sesión como root u otro usuario, y hay algunas cosas que no quiero ejecutar accidentalmente / con pereza como root:
o
fuente
Como un ejemplo extremo, permítanme alias un comando estándar para ilustrar por qué el alias de comandos estándar puede ser dañino:
Obviamente, esto es malo porque causaría una desagradable sorpresa algún día. Del mismo modo, reemplazar los comandos estándar con alias eventualmente conducirá a una desafortunada sorpresa cuando menos lo espere.
Pero permítanme presentar un escenario común que le sucederá a casi todos los administradores de Unix a medida que avancen en su carrera:
Algún día en el futuro, comenzará un nuevo trabajo y trabajará en un nuevo sistema que fue configurado por otros. Serán las tres de la mañana del sábado y no estás pensando bien y eres propenso a cometer errores. Su entorno estándar no estará disponible. De hecho, eres root.
Dado esto, ¿vas a recordar que
rm
no tiene aliasrm -i
? ¿Va a verificar sus alias especiales cada vez que inicie sesión en el cuadro? Si cambia el entorno de la raíz, ¿sus compañeros de trabajo estarán contentos con su cambio?Sinceramente, estoy en la cerca sobre esto. He trabajado en miles de sistemas en mi carrera, y si modificara el entorno en todos estos sistemas, sería difícil ver el valor.
Aliasing
rm
arm -i
es muy común y lo he visto a prevenir muchos problemas, pero también ha causado muchas sorpresas y horas de trabajo extra para recuperar archivos borrados accidentalmente.Así que ahora trato de evitar el alias de los comandos comunes del sistema. En cambio, uso alias y funciones para hacer cosas que Shell no puede hacer fácilmente. Lo que tiendo a hacer ahora es adjuntar una letra adicional al alias, como:
Y tal vez realmente debería deshacerme de mi alias final, porque adaptarme a las nuevas prácticas lleva tiempo:
fuente
ls
podría ser más conveniente que recordar diez alias.rm
->rm -i
ejemplo es mucho mejor. Otra buena sería una que alias rm para poner las cosas en un~/.trash
Hay más peligros en ello.
Por ejemplo, si usa
shell-command
Emacs, puede pensar que obtiene "su" comando (o alias , pero no tiene que pulsar unls
alias en un terminal tantas veces antes de olvidarse de configurar el alias, pensando en como cualquier otro comando ...) - de hecho (de vuelta a Emacs), obtienes el comando (sin alias). ¡Emacs lo ejecutará sin problemas, por lo que incluso podría estar ciego ante lo que acaba de suceder!En cuanto a las diferentes computadoras y / o sistemas, si cree que es demasiado tedioso configurar
.rc
archivos individuales para todos ellos, puede tener uno de esos archivos, pero conif
cláusulas para personalizar.Por ejemplo, en lugar de evaluar cada función cuando las escribe, justo cuando experimente problemas con alguna de ellas, agréguelas a la "lista negra", por último:
fuente
Cambiar el nombre de los comandos estándar por alias (es decir, el
rm=rm -i
material) ciertamente puede conducir a sorpresas donde el alias no está disponible. Yo prefiero no utilizar tales, y (por varias experiencias amargas, amargas ;-) Me he vuelto a leer acustomed cada comando dos veces, y si esrm
omv
o cualquier otra cosa tres veces potencialmente destructiva. Y tales alias conducen a "rm foo" ENTER "y" ¡Vaya! de todos modos (y cuesta una pulsación de tecla adicional cada vez).Pero solo soy yo. Si no espera correr en entornos extraños (otras máquinas, otros usuarios, ...) y puede instalar sus alias favoritos donde quiera que esté, enloquezca. Unix es famoso por dar a los usuarios más que suficiente cuerda para disparar a sus propios pies.
fuente
Las otras respuestas son buenas, pero todas solo miran cómo te afecta.
Déjame cambiar un poco la respuesta de @Stephan Laswieski en su cabeza.
Suponiendo que no eres omnisciente, es posible que necesites que alguien más trabaje en tu cuenta de usuario o te aconseje sobre cómo hacer algo.
Luego, cuando hacen algo o le dicen que lo haga, puede que no funcione como se esperaba.
En el mejor de los casos, tendrá que perder el tiempo explicándoles lo que sucedió (si está allí y puede recordar o descubrir que el alias es lo que causó el problema).
En el peor de los casos, vea un giro en el ejemplo en una de las otras respuestas: alias ls = 'rm -rf'.
fuente