¿Hay alguna forma de realizar un CD varias veces en bash?

¿Hay alguna forma de realizar un CD varias veces en bash?

A menudo suelo cd -volver a donde estaba. ¿Cómo puedo hacer esto varias veces en bash? ¿O zsh o alguna otra herramienta admitiría esto?

Respuesta1

En zsh, hay una auto_pushdopción. Esta opción hace que cdse comporte como pushd. Luego puede utilizar popdpara volver a directorios anteriores.

~ $ setopt auto_pushd
~ $ cd /
/ $ cd /var
/var $ cd /usr
/usr $ dirs
/usr /var / ~
/usr $ popd
/var $ popd
/ $ popd
~ $

En Bash, puedes asignar un alias cda pushd.

alias cd=pushd

La única desventaja de esto es que perderás cdlas tres banderas. De la cdentrada de ayuda:

-L fuerza el seguimiento de enlaces simbólicos
-P usa la estructura del directorio físico sin seguir enlaces simbólicos
-e si se proporciona la opción -P y el directorio de trabajo actual no se puede determinar correctamente, salga con un estado distinto de cero

Si alguna vez tiene que usar el código cdincorporado en lugar del alias, puede usar uno de estos:

  • 'cd'- Citar el comando hace que el shell no resuelva el alias y use el cd normal.
  • \cd- Las barras invertidas citan caracteres. Si cita un carácter de una palabra, el shell trata la palabra completa como entre comillas.
  • builtin cd- Esto le dice directamente al shell que use el incorporado en lugar del alias.

Respuesta2

A continuación se muestra una forma rápida y sencilla de marcar directorios como favoritos y volver a ellos:

$ a() { alias $1="cd $PWD"; }

Ve a algún lugar y escribe:

$ a 1

Ahora tiene un comando llamado 1que crea cdel directorio actual en este momento. Luego simplemente escribe:

$ 1

Y listo, volvemos a ese directorio. Esto me parece muy útil.

Respuesta3

intento

Encontré un script, disponibleaquí, eso resolvió este problema para mí. Con esto puedes escribir cd --para ver los últimos 10 directorios que has usado. Se verá así:

0  ~/Documents/onedir
1  ~/Music/anotherdir
2  ~/Music/thirddir
3  ~/etc/etc

Para ir a ~/Music/thirddirsimplemente escribircd -2

zsh

oh-my-zsh proporciona una funcionalidad realmente buena para esto (al menos creo que es oh-my-zsh quien establece esto).

Básicamente, dtiene el alias dedirs -v | head -10

dirses un comando integrado de zsh y muestra los últimos directorios en los que ha estado.

Además, 1tiene un alias cd -1y así sucesivamente para todos los números 9.

En la práctica, funciona así:

$ pwd
/home/me/Documents/gems/java_regex/lib

$ d
0       ~/Documents/gems/java_regex/lib
1       ~/Documents/gems/java_regex
2       ~/Documents/gems
3       ~/Documents
4       ~

$ 2
~/Documents/gems

$ pwd
/home/me/Documents/gems

Respuesta4

Sí. Podemos hacer que su cdcomando sea más poderoso. El perfil Bash nos permite personalizarlo como queramos.

En lugar de hacer varios cdpara navegar por el directorio, podemos usaralias

Por ejemplo :

alias ..5="cd ../../../../.."

Esto te llevará 5 directorios arriba del nivel.

información relacionada