3 votos

./ frente a la ejecución normal

Esta es probablemente una pregunta más para sistemas unix pero como lo tengo en mi Mac Pro espero encontrar una respuesta aquí:

Cuando navego a /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/db/bin

con un cd no puedo ejecutar el comando startNetworkServer presente en bin , en cambio puedo ejecutarlo mediante ./startNetworkServer .

Sin embargo, desde ~

MacCris:~ cris$ /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/db/bin/startNetworkServer

funciona sin ./

¿Alguna idea de por qué? (¿relacionado con los derechos?)

Gracias

7voto

yoliho Puntos 340

Esto se debe al comportamiento de su shell que se está ejecutando allí Terminal.app. Probablemente sea el bash shell

Cuando le pides al shell que ejecute un comando, si proporcionas una ruta absoluta (que empieza por / como hace el segundo) intentará ejecutar ese programa en esa ruta. Si proporciona una ruta relativa (es decir, una que no empiece por / ) intentará crear una ruta absoluta anteponiendo los directorios que están en su variable de entorno PATH a lo que usted escribió. Como su directorio actual o . no está en su PATH no puede encontrar un archivo para ejecutar. Si la ruta comienza con un . la repasará por la ruta absoluta de su directorio actual y así obtendrá una ruta que pueda ser ejecutada.

2voto

Trufa Puntos 1900
  • ~ = carpeta de inicio nada más.

  • ./something ejecutará ese algo (sea script o binario)
    Escribir la ruta completa es lo mismo que ejecutar con ./

  • cd es cambiar de directorio, por lo que no ejecutar

Todos estos son comandos estándar de la línea de comandos de unix/linux

Referencias:
http://linuxcommand.org/learning_the_shell.php http://www.arachnoid.com/linux/shell_programming.html

0 votos

Gracias...pero no es que no conozca esos comandos (los básicos) es que el comportamiento es diferente cuando intento ejecutarlo a través de la ruta completa o cuando estoy en ese directorio

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X