¿Cómo usar - como alias?

11

Cuando estaba usando openSUSE 11.3, venía con varios alias ya configurados. Dos que usé mucho fueron +por pushd .y -para popd. Ahora en Debian, no puedo entender cómo crear el segundo. alias -=popdintenta leer -=como una opción de comando para alias. Intenté poner comillas (tanto simples como dobles) alrededor y precediéndolas con una barra diagonal inversa, pero sigo recibiendo mensajes de error. ¿Alguna sugerencia?

Gracias

Lobo
fuente

Respuestas:

12

prueba esto:

alias -- -=popd

funcionó al menos para mí:

usr@srv % alias -- -=echo
usr@srv % - test
test
binfalse
fuente
Gracias, funciona perfectamente. ¿Qué hace --exactamente?
Lobo
44
@Wolf: para la mayoría de los comandos, --marca el final de las opciones; todo después de eso son argumentos. Por ejemplo, logger foo -x barregistraría "foo bar" y lo trataría -xcomo una opción, mientras que logger -- foo -x barlo trataría como una palabra ordinaria en el mensaje "foo -x bar".
user1686
1
El --indica que no hay más opciones en la línea de comando, las siguientes -no se interpretan como opciones. Esto le permite a los catarchivos que comienzan con un -;-)
binfalse
@grawity y @binfalse: Gracias por la explicación, ¡eso es muy útil! Muy bueno saberlo.
Lobo
7

En bashpuedes crear funciones nombradas como tales:

+() { pushd "$@"; }
-() { popd "$@"; }
usuario1686
fuente
lo que es $@?
Lazer
2
@Lazer: en sh y bash, se $@expande a todos los argumentos dados a la función o script. Sin comillas, funciona de la misma manera que $*. Cuando está entre comillas dobles, sin embargo, se expande exactamente a las mismas palabras que se dieron originalmente, sin ninguna división adicional.
user1686
@Lazer: se $@expande a todos los parámetros pasados ​​a la función (equivalente a "$1" "$2" ...). Para obtener más información, haga man bashy busque Parámetros especiales.
André Paramés