Di si necesito hacer esto con frecuencia:
cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/
¿Existe alguna forma más rápida de no escribir siempre ../../../../
tantas veces? ¿Alguna idea creativa?
Respuesta1
La forma clásica de hacer esto es estableciendo la CDPATH
variable. En su caso, podría configurarse .:../../../../
para .:/path/to/the/parent/of/foo
lograr el efecto deseado. Luego puedes simplemente hacerlo cd foo/sub1/bar/dest
y llegar a donde quieras.
La ventaja de esto es que la finalización de pestañas cd
también se ve $CDPATH
y funcionará mágicamente.
Respuesta2
Puedes usarsalto automáticoque aprende automáticamente del comando cd anterior y la próxima vez solo necesita especificar una cadena única de la ruta completa. ex.
j foo
,
j foo1
,
j foo2
Respuesta3
Puede crear accesos directos para estos comandos agregando alias en el archivo de configuración de bash (~/.bashrc o /etc/bash.bashrc)
alias cdd="cd ../../../../"
Luego, cuando escriba, cdd
ejecutará ese comando.
Respuesta4
Hace poco me encontréhttps://github.com/rupa/z, que le permite saltar a un directorio utilizado recientemente mediante expresiones regulares. Entonces podrías hacer algo como:
z foo3.*dest
en lugar de:
cd ../../../../foo3/sub1/bar/dest/
(siempre que haya visitado ese directorio antes y nada más reciente/usado con frecuencia coincida con esa expresión regular)