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?pushd
ypopd
hastacd -
.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!450
repetir ese comando.Respuestas:
La forma clásica de hacer esto es establecer la
CDPATH
variable. En su caso, podría establecerse en.:../../../../
o.:/path/to/the/parent/of/foo
para lograr el efecto deseado. Entonces puedes simplemente hacercd foo/sub1/bar/dest
y llegar a donde quieras.La ventaja de esto es que la finalización de la pestaña
cd
también se ve$CDPATH
y 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 foo2
fuente
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