hacer que sea más fácil llamar a los comandos de terminal de uso frecuente

Tengo una herramienta Java que uso con bastante frecuencia desde la línea de comandos, pero para usarla tengo que escribir java -jar dsim.jar. Quiero hacerlo para poder llamarlo simplemente escribiendo dsimindependientemente del directorio en el que me encuentre, pero no puedo entender cómo lograrlo.

Creé un archivo en ~/.bash_profiley puse en él:

alias dsim='java -jar dsim.jar'

Y he colocado el archivo dsim.jar /usr/local/binmientras leo, aquí es donde se deben guardar las herramientas de línea de comandos creadas por el usuario. Esta ubicación está en mi $PATH.

Creo que el alias funciona bien, pero la ubicación del archivo no parece ser accesible desde ningún lugar. Si llamo dsimdesde adentro, /usr/local/binfunciona bien, pero si estoy en cualquier otro directorio, obtengo:

Error: Unable to access jar file dsim.jar

¿Cómo puedo hacer que esto funcione desde cualquier directorio?

Respuestas (2)

Use rutas absolutas para el archivo jar:

alias dsim='java -jar /path/to/dsim.jar'
Eso probablemente funcionará, pero ¿no es la idea de poner algo en un directorio en su RUTA que no tiene que abordar de esa manera? Pensé que tenerlo en la RUTA significaba que podía llamar solo al nombre del archivo desde cualquier directorio y se encontraría.
@Sam No para archivos como este. javase encuentra usando la RUTA, pero los archivos no, de lo contrario, si tuviera un archivo llamado java en una carpeta, ejecutaría un comando como cp java java2copiaría el archivo de su RUTA en lugar del archivo en la carpeta actual.

Esta no es una respuesta directa, pero puede considerar la siguiente solución como útil para los comandos que se repiten con frecuencia:

Crea ~/.inputrc y rellénalo con esto:

"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
set completion-ignore-case on

Esto le permite buscar en su historial usando las flechas hacia arriba y hacia abajo... es decir, escriba "cd /" y presione la flecha hacia arriba y buscará en todo su historial que comience con "cd /".

(a través de https://coderwall.com/p/oqtj8w )