atajos de directorio bash

Pregunta:

Cuando escribo cd ~foo , me gustaría que bash me llevara a algún directorio foo como atajo para escribir la ruta completa del directorio foo . y me gustaría poder cp ~foo/bar.txt ~/bar.txt para copiar un archivo del directorio /foo/ directorio de inicio … Entonces, básicamente, quiero algo que funcione exactamente como ~/ lo hace, pero donde especifico cuál debería ser el directorio. [Estoy seguro de que debería jfgi, pero no sé qué fg]

Respuesta:

La forma en que solía hacer esto es crear un directorio que contenga enlaces simbólicos a los directorios que desea que hagan los accesos directos y agregar ese directorio a su CDPATH. Controles CDPATH donde cd buscará cuando se cambia de directorios, así que si ese directorio de enlaces simbólicos está en su CDPATH que pueda cd a cualquiera de los directorios del enlace simbólico al instante:

mkdir ~/symlinks
ln -s /usr/bin ~/symlinks/b
export CDPATH=~/symlinks
cd b   # Switches to /usr/bin

La desventaja, por supuesto, es que no funcionará si hay un directorio en su directorio actual llamado "b", que tiene prioridad sobre el CDPATH.


Normalmente no me gustan las respuestas que dicen "primero necesitas cambiar de caparazón", pero esta característica exacta existe en ZSH , si estás dispuesto a usarla en su lugar; se llama directorios con nombre . Exporta una variable foo , y cuando se refiere a ~foo se resuelve con el valor de $foo . Esto es especialmente conveniente porque funciona en comandos además de cd :

echo hi > /tmp/test
export t=/tmp
cat ~t/test   # Outputs "hi"

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım