¿Hay alguna manera de ir directamente a cualquier directorio desde cualquier otro directorio?

14

¿Hay alguna manera de ir directamente a cualquier directorio desde cualquier otro directorio? Por ejemplo, digamos que estoy en la raíz y quería ir directamente al proyecto actual sin hacer :

cd dropbox/dev/currentProject



-root
  -dropbox
     -dev
        -currentProject

¿Hay alguna manera de hacer esto?

pantalla de lámpara
fuente

Respuestas:

21

Puedes usar algo como autojump . Autojump le permite saltar rápidamente a directorios visitados con frecuencia con el jcomando.

Por ejemplo, una vez que haya cdingresado a su currentProjectdirectorio varias veces, puede saltar a él de esta manera:

j currentProject

Incluso puede usar solo parte del nombre del directorio. Entonces podrías hacer:

j current

A cddentro currentProject.

Wuffers
fuente
8

También puede agregar algunos directorios comunes a su $ CDPATH

export CDPATH=$HOME

Esto, por ejemplo, le permitirá cdingresar a cualquier directorio en su carpeta de inicio desde cualquier parte de su sistema.

más

Yab
fuente
7

Esto no responde a su pregunta directamente, pero si deduzco correctamente que va a saltar mucho entre directorios, podría usar un multiplexor de terminal como GNU Screen para mantener abiertos los diferentes directorios en diferentes ventanas, y simplemente cambiar entre ellos según sea necesario. Personalmente uso Byobu , que agrega algunas funciones en la parte superior de la pantalla.

Abe Voelker
fuente
1
Ver también: tmux .
Annika Backstrom
5

Puede establecer un alias en su perfil de bash. Básicamente, eso le permite abreviar un comando con una palabra. Puede configurar currentProject para que apunte a / dropbox / dev / currentProject

n0pe
fuente
4

Puede crear enlaces simbólicos en su directorio de inicio a donde desea ir.

ln -s /dropbox/dev/currentProject ~/currentProject

De esta manera, todavía estás usando cd, pero no tienes que recordar la ruta completa. Solo usa:

cd ~/currentProject

Cuando dejes de usar el enlace, simplemente bórralo.

rm ~/currentProject
Chris Ting
fuente
0

Como Wuffers mencionó anteriormente, autojump que puede hacer esto por usted. Almacena una base de datos de directorios visitados previamente y le permite usar un comando j <a few letters in the directory path>para moverse a ese directorio. Hay un comando adicional para autojump llamado jcque debe cumplir con sus requisitos. jcle permite saltar a un subdirectorio visitado anteriormente del directorio de trabajo actual. Por lo tanto, solo tiene que visitar el directorio una vez para que esto funcione hasta que purgue la base de datos de salto automático. Además, también puede agregarlo directamente en su lugar con autojump --add DIR(quizás construyendo la lista de agregar a partir de una lista de árbol de directorios si es necesario).

Snap Shot
fuente
0

En bash y * csh, están los comandos incorporados 'pushd' y 'popd' que le permiten insertar directorios en una pila Last In First Out (con pushd [directory] ) y luego cambiar rápidamente al directorio superior en la pila usando 'popd'. Entonces, dependiendo de cómo cargó la pila, es posible que pueda navegar rápidamente entre los directorios adecuadamente para que esto sea funcional para usted.

Nevin Williams
fuente