Navegación rápida de directorios en el shell bash

119

Me gustaría cambiar frecuentemente entre directorios que están en rutas totalmente no relacionadas, por ejemplo /Project/Warnest/docs/y ~/Dropbox/Projects/ds/test/.

Pero no quiero escribir cd /[full-path]/todo el tiempo. ¿Hay algún comando de acceso directo para cambiar a directorios previamente trabajados?

Una solución que se me ocurre es agregar variables de entorno a mi bash .profilepara los directorios de uso frecuente y cdpara que usen esas variables.

¿Pero hay alguna otra solución para esto?

saiy2k
fuente
Los enlaces simbólicos también podrían ser útiles para esto. en.wikipedia.org/wiki/…
user606723

Respuestas:

135

Si solo está cambiando entre dos directorios, puede usar cd -para ir y venir.

Chris Card
fuente
13
Cómo esto me ha eludido durante tanto tiempo es un misterio. Muchas gracias por este excelente consejo.
Sr. Shickadance
3
+1 Sin duda, uno de mis favoritos y uno que de alguna manera muchos expertos han "perdido".
Michael Durrant
62

Hay una variable de shell CDPATHen bashy kshy cdpathen zsh:

CDPATH    The search path for the cd command. This is a colon-separated
          list of directories in which the shell looks for destination
          directories specified by the cd command.

Entonces puede configurar en su ~ / .bashrc:

export CDPATH=/Project/Warnest:~/Dropbox/Projects/ds

Luego cd docsy cd testlo llevará al primer directorio que se encuentre. (Quiero decir, incluso si un directorio con el mismo nombre existirá en el directorio actual, CDPATHaún será consultado. Si CDPATHcontendrá más directorios con subdirectorios con el nombre dado, se usará el primero).

hombre trabajando
fuente
16
Cabe mencionar que, en general, querrá que la primera entrada $CDPATHsea .(una entrada explícita, es decir, :también funciona). De lo contrario, terminará con un comportamiento extraño CDPATHen el que los directorios tienen prioridad sobre los directorios en el directorio de trabajo actual, que probablemente no desee.
jw013
44
Hago casi lo mismo, pero sin el export. De esa manera, CDPATHno se exporta a scripts con efectos potencialmente extraños o dañinos. Vea aquí para más discusión y ejemplos.
Telémaco
"bash y ksh y cdpath en zsh" ... y en tcsh (solo respondiendo una pregunta basada en eso en Super User y encontré esto mientras buscaba respuestas similares en SE).
Hennes
Esto está especificado por POSIX, creo. Al menos, el POSIX para se cdrefiere a él.
mikeserv
48

Algo más que podrías probar es una herramienta llamada autojump . Mantiene una base de datos de llamadas a su alias ( jpor defecto) e intenta tomar decisiones inteligentes sobre dónde desea ir. Por ejemplo, si escribe con frecuencia:

j ~/Pictures

Puede usar lo siguiente para llegar en un apuro:

j Pic

Está disponible para Debian y Ubuntu, y se incluye por usuario en ~/.bashrco ~/.zshrcpor defecto.

Kyle Smith
fuente
55
Autojump es probablemente la mejor herramienta para esto, lleva un tiempo construir la base de datos de directorios comunes, pero una vez que lo haga, creo que descubrirá que no puede vivir sin él. Sé que cada vez que estoy en la computadora de otra persona me siento lisiado.
quodlibetor
1
gracias amo esta herramienta! Y aunque cd -es útil saber si aún no lo sabe, creo que esta es una solución mucho mejor que la respuesta principal actual.
Usuario
¿Instalado en todo el sistema en qué sistemas?
ctrl-alt-delor
1
@richard Está disponible como un paquete (por ejemplo, apt-get install autojumpen Ubuntu, pero también para muchos otros como se documenta en su página) para la instalación en todo el sistema, pero cada usuario debe cargarlo en su entorno de shell para que pueda anular el cd para realizar un seguimiento de donde vas
nealmcb
Es importante decir source /usr/share/autojump/autojump.shque se debe agregar a ~ / .bashrc para que funcione el salto automático .
Pablo A
39

Si se trata de una pequeña cantidad de directorios, puede usar pushdpara rotar entre ellos:

# starting point
$ pwd
/Project/Warnest/docs
# add second dir and change to it
$ pushd ~/Dropbox/Projects/ds/test
~/Dropbox/Projects/ds/test /Project/Warnest/docs
# prove we're in the right place
$ pwd
~/Dropbox/Projects/ds/test
# swap directories
$ pushd
/Project/Warnest/docs ~/Dropbox/Projects/ds/test

a diferencia cd -, puede usar esto con más de dos directorios


Siguiendo la sugerencia de Noach, ahora estoy usando esto:

function pd()
{
    if [[ $# -ge 1 ]];
    then
        choice="$1"
    else
        dirs -v
        echo -n "? "
        read choice
    fi
    if [[ -n $choice ]];
    then
        declare -i cnum="$choice"
        if [[ $cnum != $choice ]];
        then #choice is not numeric
            choice=$(dirs -v | grep $choice | tail -1 | awk '{print $1}')
            cnum="$choice"
            if [[ -z $choice || $cnum != $choice ]];
            then
                echo "$choice not found"
                return
            fi
        fi
        choice="+$choice"
    fi
    pushd $choice
}

ejemplo de uso:

# same as pushd +1
$ pd 1

# show a prompt, choose by number
$ pd
 0 ~/Dropbox/Projects/ds/test
 1 /Project/Warnest/docs
 2 /tmp
? 2
/tmp ~/Dropbox/Projects/ds/test /Project/Warnest/docs

# or choose by substring match
$ pd
 0 /tmp
 1 ~/Dropbox/Projects/ds/test
 2 /Project/Warnest/docs
? doc
/Project/Warnest/docs /tmp ~/Dropbox/Projects/ds/test

# substring without prompt
$ pd test
~/Dropbox/Projects/ds/test /Project/Warnest/docs /tmp

Obviamente, esto es solo para rotar a través de la pila y no maneja agregar nuevas rutas; tal vez debería cambiarle el nombre.

Inútil
fuente
66
Ooh, sabía sobre pushdy popdpara atravesarlo, pero no es que empujado pudiera rotar lo que se ha usado hasta ahora ...
Izkata
14

Yo uso aliasen bashrc para hacer esos cds.
como:

alias wdoc='cd ~/Project/Warnest/docs'
alias dstest='cd ~/Dropbox/Projects/ds/test'
Felix Yan
fuente
¿bashrc es un archivo como .profile? en el que necesito agregar esas líneas?
saiy2k
~/.bashrco /etc/bash.bashrc. No lo usé .profileantes, así que no sé la relación entre ellos :-(
Felix Yan
scripts bashrc se iniciará cada vez que abra la terminal. perfil con inicio.
agregó esas líneas a mi .bash_profiley funciona muy bien ... gracias :)
saiy2k
Tengo varias carpetas de proyectos específicas a las que voy regularmente, esta es la forma más fácil de configurarlas y mantenerlas. Además, para mí, resulta en el número mínimo absoluto de caracteres escritos de todas las soluciones aquí. ¡BESO! :-)
moodboom
11

Encontré un script (típicamente llamado acd_funch.sh) que resolvió este problema por mí. Con esto, puede escribir cd --para ver los últimos 10 directorios que ha utilizado. Se verá más o menos así:

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

Para ir a ~/Music/thirddirescribircd -2

Referencias

NOTA: Este script se publicó originalmente en un artículo de la gaceta de Linux que está disponible aquí: acd_func.sh: extiende el CD de bash para mantener, mostrar y acceder al historial de los nombres de directorios visitados .

Decano
fuente
El mismo script también se publicó en Linux Gazette, número # 109, diciembre de 2004 .
Serge Stroobandt
@Dean El enlace va a un video musical y dice que Geocities se ha cerrado.
algo Algo
1
@somethingAlgo Agregó enlaces alternativos.
Dean
historia | grep cd
user2180794
10

Prueba la cdable_varsopción de shell en bash. Lo enciendes con shopt -s cdable_vars.

Entonces necesitas establecer tus variables export dir1=/some/path. y finalmente cd dir1, etc. Luego puedes ponerlo en tu ~/.bashrcpara que se pegue.

Wojtek Rzepala
fuente
10

Use "pushd -n " (suponiendo que use bash).

Agregue a su ~ / .bashrc:

pushd -n /Project/Warnest/docs/
pushd -n ~/Dropbox/Projects/ds/test/

entonces,

cd ~ es tu hogar

cd ~1 es ~/Dropbox/Projects/ds/test/

cd ~2 es /Project/Warnest/docs/

Puede usar ~1, ~2etc. exactamente de la misma manera que ~.

Eelvex
fuente
7

Hay muchas buenas sugerencias aquí. El uso dependerá de si tiene una pequeña lista fija de directorios entre los que cambia, o si está buscando una solución más genérica.

Si se trata de una pequeña lista fija, configurar alias simples (como sugirió Felix Yan) sería más fácil de usar.

Si está buscando una solución más generalizada (es decir, muchos directorios diferentes, que cambian con el tiempo), usaría pushd y popd (como sugirió Useless). Personalmente, considero que el pushd / popd predeterminado es difícil de usar, especialmente cuando comienzas a cambiar entre muchas carpetas; Sin embargo, escribí algunos ajustes que me lo hacen mucho más fácil. Agregue lo siguiente a su bashrc:

alias dirs='dirs -v'
pd () 
{ 
    if [ "$1" ]; then
        pushd "${1/#[0-9]*/+$1}";
    else
        pushd;
    fi > /dev/null
}
  • Use pd(como una forma más corta de pushd) para saltar a una nueva carpeta, recordando dónde estaba.
  • Use dirspara ver la lista de directorios guardados.
  • Use pd 3para saltar al directorio número 3.

Ejemplo de uso:

$ PS1='\w\$ '   ## just for demo purposes
~$ pd ~/Documents/data
~/Documents/data$ pd ../spec
~/Documents/spec$ pd ~/Dropbox/Public/
~/Dropbox/Public$ pd /tmp
/tmp$ pd /etc/defaults/
/etc/defaults$ dirs
 0  /etc/defaults
 1  /tmp
 2  ~/Dropbox/Public
 3  ~/Documents/spec
 4  ~/Documents/data
 5  ~
/etc/defaults$ pd 2
~/Dropbox/Public$ dirs
 0  ~/Dropbox/Public
 1  ~/Documents/spec
 2  ~/Documents/data
 3  ~
 4  /etc/defaults
 5  /tmp
~/Dropbox/Public$ pd 4
/etc/defaults$ dirs
 0  /etc/defaults
 1  /tmp
 2  ~/Dropbox/Public
 3  ~/Documents/spec
 4  ~/Documents/data
 5  ~
/etc/defaults$ pd 3
~/Documents/spec$ popd
~/Documents/data ~ /etc/defaults /tmp ~/Dropbox/Public
~/Documents/data$ 
Noach
fuente
6

Lo siguiente pareció funcionar en el caso en el que lo probé, y puede dejar caer los nombres de sus directorios como enlaces simbólicos en ~ / Marcadores:

mkdir "$HOME/Bookmarks"
ln -s /tmp "$HOME/Bookmarks/testdir"

function ccd() { cd $(readlink "$HOME/Bookmarks/$1") ; }

ccd testdir && echo $PWD
# gives /tmp
Ulrich Schwarz
fuente
¿Qué función ccd () necesita escribir en el indicador de terminal o en otro lugar? ¿Puedes explicar por favor?
saiy2k
1
@ saiy2k: lo siento, sí. La functionlínea entra en su .bashrc (puede escribirla en su terminal para probar, pero desaparecerá cuando cierre esa ventana), las líneas antes de configurar el caso de prueba de "testdir" convirtiéndose en un nombre /tmpy La última línea es la prueba para ver si funciona.
Ulrich Schwarz
6

Podrías hacer algo peor que probar j2 .

Desde el archivo Léame:

¿Pasa mucho tiempo haciendo discos alrededor de un árbol de directorios complejo?

j realiza un seguimiento de dónde has estado y cuánto tiempo pasas allí, y proporciona una manera conveniente de saltar a los directorios que realmente utilizas.

Lo uso ampliamente y lo recomiendo.

phildobbin
fuente
5

Aconsejaría usar zsh , ese shell como muy buena terminación de TAB para directorios, archivos e incluso opciones para la mayoría de los programas cli.

He estado usando ese shell durante años y extrañaría la funcionalidad si hubiera desaparecido. Crear secuencias de comandos de zsh también es muy divertido, con una gran cantidad de frases ingeniosas que pueden ayudarlo todos los días.

polemon
fuente
No es necesario cambiar a zsh para completar TAB ya que bash lo tiene todo igual. Para otra funcionalidad tal vez pero no para esto.
Peer Stritzinger
1
@PeerStritzinger Bash introdujo ese tipo de funcionalidad en BASH 4.0, pero en comparación con zsh, todavía está muy por detrás. Decir "todo lo mismo" es ciertamente incorrecto.
polemon
Bueno, zsh es sin duda el übershell, pero solo para completar la pestaña no hay necesidad de cambiar (se hizo una pregunta para bash). Además bash 4.0 fue presentado hace unos 3 años ...
Peer Stritzinger
5

En mi experiencia, la mayor aceleración en la navegación en un shell es usar su funcionalidad de búsqueda de historial. En Bash puede buscar hacia atrás en su historial de comandos presionando Ctrl+ Ry escribir algún patrón. Ese patrón se compara con las entradas anteriores en su historial, ya sean cdcomandos u otras operaciones, y se hacen sugerencias a medida que escribe. Simplemente presione enter para ejecutar el comando sugerido nuevamente. Esto se llama reverse-search-historyen Bash y me encanta. Me ahorra muchas pulsaciones de teclas y me ahorra memoria interna.

Es bueno porque solo tiene que recordar una parte más pequeña de un comando, como Dropo Wapara distinguir entre las dos entradas del historial cd ~/Dropbox/Projects/ds/test/y cd /Project/Warnest/docs/.


fuente
5

También uso estos alias (agregarlos a ~ / .bashrc):

alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'

Es mucho más rápido ir al directorio superior con ellos (sin embargo, solo resuelve la mitad de la navegación).

reimai
fuente
1
Estos son alias útiles, pero no estoy completamente seguro de que coincidan con las necesidades del OP. Puede considerar ampliar su respuesta para sugerir cómo podrían ser directamente útiles para el problema del OP.
HalosGhost
4

si estás usando zsh:

  • no tiene que escribir cd, solo escriba la ruta del directorio ( /foo/bar/baz<Enter>igual a cd /foo/bar/baz<Enter>)

    requiere auto_cdque se establezca la opción

  • puede expandir las rutas abreviadas con la Tabtecla (se /u/sh/pi<Tab>expande a /usr/share/pixmaps; funciona también para los nombres de archivo)
Andrei Dziahel
fuente
3
Bash 4 ha ganado shopt -s autocd, por lo que ya no es una bondad de zsh.
Gilles
4

Hay una herramienta bastante agradable para cambios rápidos de directorio:

xd - Cambiador de directorios rápido eXtra http://xd-home.sourceforge.net/xdman.html

un poco incómodo es que necesita mapearlo en bash profile o similar, ya que solo genera el directorio

# function to do `cd` using `xd`
# -g turns generalized directory search command processing on
# which improves the whole thing a bit
f() 
{
        cd `/usr/bin/xd -g $*`
}

puedes hacer cosas como:

# change to /var/log/a* (gives you a list to choose from)    
f vla
# to skip the list and go directly to /var/log/apache2
f vlapach
nulo
fuente
Cambie la función a f() { cd "$(xd -g "$@")"; }para manejar correctamente los directorios y espacios espaciados en los argumentos a xd(probablemente no necesite la ruta). Si nunca lo usa xdde otra manera, puede hacerlo alternativamente xd() { cd "$(command xd -g "$@")"; }(alternativamente, usarlo /usr/bin/xden lugar de command xd- siempre puede ejecutarlo command xd …si necesita evitarlo).
Adam Katz
4

Nunca debe escribir la ruta completa en shell de todos modos. Siempre puedes usar:

soffice /P*/W*/*/mydoc*

en lugar de

soffice /Project/Warnest/docs/mydoc.odt
gena2x
fuente
1
Esto es como completar pestañas, pero peor en todos los sentidos
Michael Mrozek
No puede hacer esto con la pestaña completada con la cantidad de pulsaciones de teclas euqal a menos que el Proyecto sea solo un archivo que comienza con P, etc. Además, debe esperar a que se complete cada vez, usando * no tiene que esperar.
gena2x
Creo que lo tiene al revés: no puede hacerlo a P*menos que Project sea el único archivo que comienza con P. La finalización de la pestaña puede alternar (de manera predeterminada en la mayoría de los shells; necesita volver a vincular la pestaña menu-completeen bash) y se resuelve instantáneamente en casos simples así, no hay que esperar por ello
Michael Mrozek
Con respecto a 'no puedes hacerlo', puedes, pruébalo, te perderás todo el punto si crees que no puedes. Prueba echo / u * / b * / g ++
gena2x
1
Entiendo lo que quieres decir, es más rápido siempre que estés seguro de que has escrito una ruta inequívoca, pero /P*/W*/*/mydoc*parece que funcionaría bien hasta que un día hiciste otro archivo que coincida con ese globo, y de repente terminas abriendo ambos a la vez. /u*/*/g++es impresionantemente pocos caracteres, pero espero que nada más en ninguna de las subcarpetas de cualquiera de mis carpetas raíz comiencen con unombre g++. (Como un buen compromiso, en algunos shells puedes usar la pestaña para expandir los globos en el lugar a medida que avanzas)
Michael Mrozek
3

También hay OLDPWDuna variable de entorno que, según IEEE 1003.1 (POSIX), debe actualizarse con el directorio de trabajo anterior cada vez que cdcambia el directorio de trabajo (para los curiosos, línea 80244 de la página 2506 de IEEE 1003.1-2008).

njsg
fuente
3

También hay una aplicación "wcd" creada específicamente para esto (también portada a cygwin, ya que estoy en eso). Puede crear accesos directos, marcadores de directorios con él. También es compatible con comodines. Leer la página del manual y los documentos en / usr / share / wcd debería ayudar mucho.

http://manpages.ubuntu.com/manpages/hardy/man7/wcd.7.html

sam
fuente
3

cdargs es la herramienta más eficiente para marcar un directorio: http://www.youtube.com/watch?v=uWB2FIQlzZg

Emon
fuente
¿Es este un producto con el que está asociado?
Kazark
Gracias por señalarme a Cdargs. Simplemente sudo apt-get cdargsen ubuntu. Por cierto, el video de YouTube es realmente malo, pero la herramienta es excelente.
DavidG
3

Pruebe fastcd ( https://github.com/frazenshtein/fastcd ) Establece el enlace que registra los directorios visitados desde bash. Y establece el script como alias "j", que le muestra los últimos directorios visitados, con la capacidad de crear cd rápidamente (comience a escribir para filtrar directorios). Se requiere la modificación de .bashrc para hacer el alias "j".

Obteniendo herramienta

cd ~; mkdir Soft; cd Soft
git clone https://github.com/frazenshtein/fastcd

Instalar módulos requeridos

pip install --user urwid

Fuente del archivo set.sh en su bashrc

echo -e "\nsource /home/$USER/Soft/fastcd/set.sh\n" >> ~/.bashrc

Y actualizar bashrc

source ~/.bashrc

Luego simplemente escriba "j" en la consola

Sam Toliman
fuente
¿Como funciona esto? Si se trata de alias, ¿qué hace esta herramienta por usted que no puede hacer editando manualmente .bashrc?
G-Man el
Lanza un demonio que registra los directorios visitados en ~ / .fastcd para shells lanzados (bash). "j" lanza una herramienta que muestra los últimos directorios visitados, con la capacidad de crear cd rápidamente. Se requiere la modificación de .bashrc para hacer el alias "j". Puede ver el código fuente para obtener más información, supongo
Sam Toliman
Gracias por su rápida respuesta. Este es el tipo de información que debería estar en la respuesta. Por favor, editar su respuesta para incluir esta información.
G-Man el
3

Tenía la misma pregunta, y primero encontré esta respuesta . Instalé la utilidad z ( https://github.com/rupa/z ).

Esto es exactamente lo que usted busca, porque z aprende de sus comandos cd, y realiza un seguimiento de los directorios de acuerdo con el frecency principio (frecuente y reciente). Entonces, después de hacer ambos comandos de CD una vez, puede hacer algo como:

z docs
z ds

saltar a /Project/Warnest/docs/y ~/Dropbox/Projects/ds/test/respectivamente. Los argumentos para z son expresiones regulares, por lo que ni siquiera necesita escribir un nombre de carpeta completo.

saroele
fuente
2

He estado usando mi propia utilidad cdhist para administrar esto durante muchos años. Alias ​​su comando de CD y mantiene automáticamente una pila de directorios.

viñeta
fuente
2

Puede usar exportpara asignar sus rutas de directorio a variables y luego hacer referencia a ellas.

export dir1=/Project/Warnest/docs/
export dir2= ~/Dropbox/Projects/ds/test/
cd $dir1
cd $dir2
Fahad Naeem
fuente
Sí, esto es suficiente para algunos directorios favoritos. No es necesario instalar ninguna otra utilidad. Simplemente ponga las exportdeclaraciones en su ~/.bashrc, y siempre estarán disponibles.
wisbucky
1

Algunas sugerencias aquí:

La idea más directa, agregaré un alias en el archivo .profile

vi ~/.profile
alias dir1='cd /myhome/onedir'
alias dir2='cd /jimmy/anotherdir'

Luego use $ dir1 o dir2, puede cd

Si siempre está cambiando solo en dos directorios. usando cd -cambiará entre ellos.

Dan
fuente
1

La solución que uso para esta situación es screen. Pantalla de inicio y cree una ventana para cada directorio con C-a cy navegue hasta allí. Cambiar entre ventanas / directorios con C-a no C-a p. Nombra las ventanas con C-a A. Luego puede abrir una lista de sus ventanas C-a "y navegar usando el número o nombre de la ventana. Como es así screen, puede desconectarse de la sesión guardando su espacio de trabajo y volver a adjuntarlo más tarde con la misma configuración.

David R. McWilliams
fuente
1

Parece que lo que necesita es básicamente un archivo de proyecto para su flujo de trabajo. Con directorios que pertenecen a su actividad, como en un IDE de programación. Prueba Zsh Navigation Tools y la herramienta n-cdallí. Le permitirá navegar por las últimas carpetas visitadas y también definir un Hotlistdirectorio con su elección:

n-cd

n-cd se puede vincular a una combinación de teclas con:

zle -N znt-cd-widget

bindkey "^ T" znt-cd-widget

Adam Lisson
fuente
1

TL; DR

  1. Utilice una Fishde shell interactivo que la autonomía de inmediato ( fish> zsh> bash).
  2. Uso POSIX/ Bashsecuencias de comandos que es la sintaxis más amplio apoyo ( POSIX> Bash> Zsh> Fish).

Conchas

Haber probado diferentes shells aquí es mi opinión (en orden de prueba / adopción):

  • Bash:
    • autocompletado: básico;
    • expansión del camino: no;
    • scripting: excelente
  • Zsh+ oh-my-zsh:
    • autocompletado: bueno (ciclismo);
    • expansión de ruta: sí ( cd /e/x1cd /etc/X11/);
    • scripting: bueno
  • Fish+ oh-my-fish(actual) es el mejor fuera de la caja:
    • autocompletado: opciones nativas y compatibles;
    • expansión del camino: sí;
    • secuencias de comandos: demasiada diferencia con respecto a POSIX-compatible.

Usa alias significativos

Cada shell se puede expandir usando functiony alias, aquí están los que uso relacionados con su problema (compatible con POSIX):

back () {  # go to previous visited directory
        cd - || exit
}

up () {  # go to parent directory
        cd ..|| exit
}

Hay básicos, pero realmente significativos, fáciles de recordar y autocompletar.

Conoce tu caparazón

Configure CDPATHpara agregar sus directorios más usados ​​(por ejemplo ~/projects/, /etc/init.d/) para que pueda saltar rápidamente a ellos.

Vea la respuesta de manatwork para obtener más detallesCDPATH .

Hangout y leer

Édouard Lopez
fuente
Cuando llama una función de shell exit, sale del shell interactivo. Esos "alias significativos" podrían ser alias back='cd -'y alias up='cd ..', pero no se preocupe, esos comandos nunca devolverán false (¿ningún directorio anterior? ¡Lo envía a casa! ¿Ya está en la raíz? ¡Es un no-op!) Y, por lo tanto, nunca saldrá . También alias back='cd $OLDPWD'tenga en cuenta (tenga en cuenta las comillas simples) ya que no tendrá ningún resultado ( cd -le dice a dónde lo está enviando, lo que probablemente sea innecesario ya que su mensaje tiene esa información)
Adam Katz
1

ances una herramienta de línea cmd (abreviatura de ancla), que mantiene marcadores de directorios. (hasta ahora solo probado con bash)

En tu caso:

anc a /Project/Warnest/docs/ ~/Dropbox/Projects/ds/test/

esto agrega ambos directorios a la lista de anclaje (piense en marcadores)

ahora si quiere saltar /Project/Warnest/docs/desde cualquier lugar de su sistema, escriba:

anc Warn

y si quieres saltar para ~/Dropbox/Projects/ds/test/escribir:

anc ds test

Además de hacer coincidir el texto con las rutas marcadas, anc tiene muchas otras formas convenientes para saltar por los directorios.

anc i

inicia el modo interactivo, que enumera todos los marcadores por número, por lo que todo lo que tiene que escribir es el número

Si escribe:

anc Pro[TAB]

se muestra una lista que coincide con todos los marcadores (en su caso, ambos marcadores) y puede seleccionarla usando las teclas de flecha, esta es una forma muy rápida e intuitiva.

Obtenga anc en la página de github del proyecto: https://github.com/tobimensch/anc

También hay un archivo README con ejemplos de uso.

Divulgación completa: soy el autor de este script. Espero que algunas personas lo encuentren útil.

tobimensch
fuente