Mi café de la mañana aún no había llegado a mi cerebro cuando olvidé las citas en:
alias grep="grep --color=always"
así que en su lugar escribí:
alias grep=grep --color=always
dejándome con:
--color=always
grep=grep
en mis alias
Cuando intento limpiar --color = siempre usando unalias --color, obtengo:
bash: unalias: --: invalid option
unalias: usage: unalias [-a] name [name ...]
Intenté escapar, citar y rogar, pero no puedo entender cómo hacer que el comando unalias limpie el desorden.
(Sé que un reinicio hará el truco, pero seguramente debe haber otra forma)
bash
bash-alias
Requist
fuente
fuente

echo > \\?\c:\windows\x., o esa vez querm -rf * ~por accidente.Respuestas:
Puede evitar que los sistemas compatibles con POSIX interpreten guiones en los comandos agregando
--antes de cualquier argumento.Esto también funciona con otras utilidades, digamos que tiene un archivo llamado
-bla. Si intenta eliminarlorm, obtendrá el siguiente error:Al usar
--antes del nombre de archivo, eliminará el archivo:fuente
ls ./-blayrm ./-bla(o especificar las rutas completas, lo que sea más fácil en su caso). ¡Obviamente, esto no funciona para los alias!Solo usa el mismo truco que usaste para establecer el alias
fuente
unalias unalias --colorSolución rápida
Para solucionar tanto los alias equivocadas que pueden funcionar simplemente
Entendiendo lo que pasó
Usted da el comando equivocado
alias grep=grep --color=alwayssin"...".Estableces dos alias
--colorygrep; de hecho, puede leerlo en el lado izquierdo de su salida (todo a la izquierda=es un comando con alias):entonces necesitas desarmar ambos.
¿Por qué sucedió esto?
El
...sinóptico de alias significa que es posible hacer asignaciones múltiples en una línea:En la salida de
help aliaspuede leer el sinóptico, pero desdeman bashusted puede leer que es posible en la misma línea incluso enumerar y asignar al mismo tiempo:Tiene problemas para desarmar el primero
--colorsolo .Esto porque se interpreta como opciones para
aliasque su concha; Para evitar esto, debe comunicarle a subashshell que lo que sigue no es una opción.El Santo Grial de Linux:
manen este caso,man bashes un cofre lleno de tesoros útiles en situaciones como esta.Puedes leer de
man bash:Como se informó en otra respuesta, la forma POSIX es utilizar la combinación de caracteres especiales
--.¿
unalias grep --colorPero por qué está funcionando? Quiero decir sin usar--?Como funcionó
aliasincluso paraunaliases posible dar más de un nombre a la vez (de nuevo el[...]).Solo puedo dar mi suposición: un buen hábito de programación es escribir las rutinas de lectura y escritura al mismo tiempo, por debajo de la misma lógica. Por lo tanto, tiene que ser para la opción analizar las rutinas de
aliasyunalias.Esto puede funcionar incluso desde este comando (desde un shell abierto para este propósito) que no borrará todos sus alias:
Comentario final
En la sección ERRORES de
man bashentre las pocas cosas informadas, puede leer:-)fuente