Di si necesito hacer esto mucho:
cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/
¿Hay alguna forma más rápida de no siempre escribir ../../../../tantas veces? ¿Alguna idea creativa?

cd ../../../..y terminar con esto?pushdypopdhastacd -.cd -( para ir al último directorio ) es más fácil. Normalmente,alias h="history|grep"para poder usar los atajos de entrada del historial en su lugar. Algo asíh foo3, seguido de!450repetir ese comando.Respuestas:
La forma clásica de hacer esto es establecer la
CDPATHvariable. En su caso, podría establecerse en.:../../../../o.:/path/to/the/parent/of/foopara lograr el efecto deseado. Entonces puedes simplemente hacercd foo/sub1/bar/desty llegar a donde quieras.La ventaja de esto es que la finalización de la pestaña
cdtambién se ve$CDPATHy funcionará mágicamente.fuente
Puede usar el salto automático que aprende automáticamente del comando cd anterior y solo necesita especificar una cadena única de la ruta completa la próxima vez. ex.
j foo`j foo1`j foo2fuente
Puede crear accesos directos para estos comandos agregando alias en el archivo de configuración bash (~ / .bashrc o /etc/bash.bashrc)
Luego, cuando escriba
cdd, ejecutará ese comando.fuente
function cdd () { cd ../../../../$1/bar/dest ; }, por lo que a continuación, puedes escribir por ejemplocdd foo,cdd foo2.Recientemente me encontré con https://github.com/rupa/z , que te permite saltar a un directorio utilizado recientemente por regex. Entonces podrías hacer algo como:
en vez de:
(siempre que haya visitado ese directorio anteriormente, y nada más reciente / utilizado con frecuencia coincide con la expresión regular)
fuente