Digamos que hice cd /usr/local/bin
pero quiero cambiar mi contraseña /usr/bin
, ¿cómo puedo hacer eso con zsh? Sé que puedo hacer cosas como cd /a/b/
y luego cd b c
para cambiar mi pwd a /a/b
, pero no sé cómo hacer lo que deseo.
Respuesta1
Dada la funcionalidad flexible de zsh cd
, hay al menos tres formas de hacer lo que deseas. Puedes escribir cd /usr/local /usr
o cd local /
o cd local/bin bin
. Probablemente se puedan encontrar más soluciones.
cd
La sintaxis de zsh es cd OLD NEW
. Este comando coincide $PWD
con OLD
y reemplaza cualquier parte coincidente con NEW
. Debes tener en cuenta que cd
funciona en relación con tu directorio actual, por lo que si escribes cd /usr/local usr
mientras estás en /usr/local/bin
, zsh te dará un error, porque no existe un directorio como /usr/local/bin/usr/bin
. Vigila siempre los cortes.
Respuesta2
Puedes usar elforma de dos argumentos decd
para reemplazar una subcadena del directorio de trabajo actual. Por ejemplo, para eliminar /local
, puedes usar
cd /local ''
Dado que varias barras diagonales no hacen ninguna diferencia, también puedes escribir esto como cd /local /
(da como resultado /usr//bin
, luego la doble barra se simplifica a una sola) o cd local /
(también da como resultado /usr//bin
).
Otro enfoque es utilizar la edición de línea de comandos. Con la configuración predeterminada, escriba cd $PWD
en la línea de comando, luego presione Tab: la sustitución de la variable se reemplaza por el valor de la variable y puede editarla a su gusto. En setopt auto_cd
, no es necesario que escriba cd
primero. Si su configuración hace que Tabno se expanda la variable, use cualquier tecla que invoque la función zle expand-or-complete
en lugar de complete-word
.