Transforma tu experiencia en la terminal con Bash: utiliza CDPATH para acceder a directorios fácilmente, navega entre dos carpetas con cd - y gestiona múltiples ubicaciones con pushd y popd.
Estas características de Bash transforman la terminal en un explorador de archivos alternativo. Guardas ubicaciones, retrocedes fácilmente y consultas un historial completo de tus movimientos. No necesitas complementos ni configuraciones complicadas.
El sistema de marcadores: CDPATH
Salto a carpetas de proyecto desde cualquier lugar
La mayoría trata cd como si solo conociera rutas absolutas y relativas. Sin embargo, CDPATH introduce una tercera opción: una lista de directorios separados por dos puntos. Al usar cd con un nombre que no comienza en barra, punto o dos puntos, Bash busca coincidencias en la lista antes de dar por finalizada la búsqueda.
Por ejemplo, si almacenas tus proyectos en ~/projects y tus notas en ~/Documents/writing, añadir CDPATH=.:~/projects:~/Documents/writing a tu ~/.bashrc te permitirá, al escribir cd website, acceder directamente a ~/projects/website, sin importar tu ubicación actual, siempre que no exista una carpeta llamada website en el directorio en el que estás.
El punto al inicio de la lista es fundamental; ordena a Bash que verifique primero el directorio actual. Una entrada vacía también serviría, pero el punto es más legible.
Cuando Bash usa CDPATH, imprime la ruta completa. Esa impresión simple te confirma que se usó un marcador en lugar de una carpeta local.
Asegúrate de definir la variable en ~/.bashrc sin exportarla. Un CDPATH exportado puede causar confusiones en scripts que presuman que están buscando en un directorio local.
Limitarlo a tu shell interactivo evita problemas. Junto con bash-completion, que trabaja con CDPATH, la autocompletación sugerirá carpetas de tus ubicaciones marcadas. Te olvidas de recordar nombres exactos.
El botón de regreso: cd -
Alternar entre tus dos directorios más recientes
Cada vez que cambias de directorio, Bash guarda la ubicación anterior en OLDPWD. Al ejecutar cd -, regresas a esa ruta; es como hacer cd "$OLDPWD", pero en versión corta. Y muestra la ruta de destino al final.
Lo interesante es su capacidad de alternar. Cuando vuelves al directorio anterior, Bash actualiza OLDPWD a la última ubicación. Así, un segundo cd - te retorna de nuevo. Este patrón es especialmente útil al moverte entre dos ubicaciones frecuentemente, como un directorio de trabajo y uno de registros, o entre un directorio de configuración en /etc y el proyecto que estás editando.
Como OLDPWD es una variable normal, puedes usarla también con otros comandos. Por ejemplo, copiar un archivo en el directorio que acabas de dejar es tan sencillo como cp report.txt "$OLDPWD", o listar su contenido con ls "$OLDPWD". Y no olvides el atajo ~-, que se expande al mismo valor, así que cp report.txt ~- logra el mismo objetivo.
Sin embargo, cd - solo recuerda una ubicación previa; no guarda un historial completo. Si pasas de tu carpeta de inicio a un proyecto y luego a una subcarpeta, al ejecutar cd - volverás al proyecto, no a tu carpeta de inicio. Repetirlo solo te llevará de regreso otra vez, nada más.
La subcarpeta. Para el trabajo rápido de ida y vuelta, eso es justo lo que buscas. Pero si tu ruta se complica con tres o más paradas, la cosa cambia. Aquí es donde la pila de directorios se convierte en tu aliada.
Mantener un rastro completo de dónde has estado
Pasemos a la limitación que mencioné antes. Mientras cd - guarda solo una ubicación, pushd y popd se encargan de tantas como necesites. Bash mantiene una pila de directorios, la famosa DIRSTACK, accesible mediante estos dos comandos que añaden o eliminan entradas. Ejecutar pushd /var/log te lleva ahí y lo coloca en la parte superior de la pila, dejando el directorio anterior justo debajo. Con popd, eliminas la entrada superior y regresas a la anterior.
Esto te da la capacidad de retroceder efectivamente. Mueves por una carpeta de proyecto, un directorio del sistema y una unidad de respaldo, y vuelves en orden inverso sin tener que recitar cada ruta. Después de cada acción, ambos comandos imprimen la pila actual, ayudándote a seguir tu ubicación. Si eso genera demasiado ruido, redirigir la salida a /dev/null lo silencia.
El comando dirs te muestra la pila cuando lo necesites, y dirs -v te da una lista con índices numéricos. Estos índices son claves para funcionalidades avanzadas. Ejecutar pushd +2 rota la pila, llevando la tercera entrada a la cima y cambiando a esa ubicación. Este truco permite saltar directamente a cualquier lugar almacenado en lugar de retroceder paso a paso. La expansión con tilde también juega con la pila: ~1 se refiere a la segunda entrada, así que un comando como cp file.txt ~2 apunta a un directorio almacenado sin moverte físicamente allí. Al ejecutar pushd sin argumentos, intercambias las dos entradas superiores, similar a cd -.
Cuando ya no necesitas la pila, dirs -c la vacía. Algunos prefieren aliasar cd como pushd, registrando automáticamente cada movimiento, aunque eso puede generar una pila difícil de manejar. Usar pushd intencionalmente hacia ubicaciones donde sabes que regresarás suele ser la elección más sensata.
CDPATH almacena tus ubicaciones favoritas, cd - facilita los viajes cortos, y la pila de directorios te da un seguimiento completo cuando lo necesitas. En conjunto, cubren casi todos los patrones de navegación y llevan solo unos segundos en empezar a usar.
Si deseas encontrar artículos similares a Estas 3 simples variables bash añaden marcadores y botones de retroceso a tu sesión de terminal de Linux, te sugerimos revisar la categoría Linux.

Deja una respuesta