Quiero ejecutar automáticamente comandos con el prefijo/usr/bin/env
$/usr/bin/env composer install (this runs OK)
$/usr/bin/env cd public (failed ---> /usr/bin/env: cd: No such file or directory)
Soy nuevo en Linux y, en mi opinión, usar /usr/bin/env
es una forma extraña de escribir comandos. Me pregunto por qué mi segunda línea no funcionó (mientras que algunas funcionaron, como mkdir
o ls
)
La razón por la que no puedo deshacerme de ella /usr/bin/env
es que estoy usando Capistrano y sigue anteponiendo el prefijo. Si hay una manera de deshacerse de él /usr/bin/env
, es aún mejor.
Gracias de antemano.
Respuesta1
No puede ejecutarlo env cd /path/to/directory
porque no hay ningún programa llamado cd
en su sistema. Un proceso puede cambiar su directorio de trabajo mediante una llamada al sistema. En un shell puedes usar un comando incorporado cd
. Llamarlo desde env
no tiene ningún sentido ya que crea un nuevo proceso que saldría justo después de cambiar su directorio de trabajo. El nuevo env
proceso no puede cambiar el directorio de trabajo del proceso que llama de forma estándar.