¿Cómo puedo ejecutar un comando que está en un directorio diferente para que el comando crea que lo ejecuté en el directorio actual?
Si un comando usa basename()
o argv[0]
(o como se llame) para obtener desde donde fue llamado y requiere archivos en su directorio, puede buscar en el directorio desde donde llamó la aplicación; es decir, el equivocado.
Por supuesto, primero puede cd
ir al directorio e invocarlo allí, pero ¿hay alguna manera de invocar la aplicación para que crea que la ha ejecutado desde su directorio (sin cd
iniciar sesión primero)?
Si es posible, lo usaré en crontab
, ya que me asusta la idea de usarlo cd
allí.
Respuesta1
¿Por qué te asusta el uso cd
en crontab?
Tenga en cuenta que si desea cambiar de directorio temporalmente y luego regresar, puede usar pushd
ypopd
Respuesta2
Puedes hacer un script como este:
#!/bin/sh
cd /dir/
yourcommand
Luego guárdelo en algún lugar y agregue ese script a crontab