A menudo tengo un diseño de directorio de proyecto como este
project
`-- component-a
| `-- files...
`-- component-b
| `-- files...
`-- component-c
`-- files...
Por lo general, estaré trabajando en uno de los component
directorios, porque ahí es donde están los archivos. Cuando vuelvo al shell, a menudo simplemente necesito moverme a un directorio hermano, especialmente cuando necesito hacer algunos cambios no programables en cada componente. En esos casos, ni siquiera me importará cuál es el directorio de hermanos anterior en el que trabajaré, o el siguiente directorio de hermanos.
¿Puedo definir un comando prev
o next
que simplemente cd
me llevará al directorio anterior o al siguiente directorio (por alfabeto o lo que sea)? Porque escribir cd ../com<TAB><Arrow keys>
todo el tiempo se está volviendo un poco viejo.
fuente
[[ -n $foundcwd ]]
entonces tu respuesta funciona en bash y zsh igualmente bien. Muy bien, y gracias por escribir esto.La siguiente función permite cambiar a directorios hermanos (función bash)
Un ejemplo de uso:
fuente
Encontré un consejo en commandlinefu.com . Lo vuelvo a publicar aquí para que sea más fácil de encontrar, con una explicación y un
next
comando agregado mientras estoy en ello.La magia está en el bloque `$ (...). Canaliza algunos comandos entre sí de la siguiente manera:
fuente
"$foo"
,"$(foo)"
). Además, el análisis de la salida dels
no es confiable , puede fallar con nombres de archivo que contienen caracteres no imprimibles.