Eliminar parte del directorio del directorio actual en zsh

Eliminar parte del directorio del directorio actual en zsh

Digamos que hice cd /usr/local/binpero 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 cpara 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 /usro cd local /o cd local/bin bin. Probablemente se puedan encontrar más soluciones.

cdLa sintaxis de zsh es cd OLD NEW. Este comando coincide $PWDcon OLDy reemplaza cualquier parte coincidente con NEW. Debes tener en cuenta que cdfunciona en relación con tu directorio actual, por lo que si escribes cd /usr/local usrmientras 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 decdpara 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 $PWDen 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 cdprimero. Si su configuración hace que Tabno se expanda la variable, use cualquier tecla que invoque la función zle expand-or-completeen lugar de complete-word.

información relacionada