¿Cómo puedo cambiar el directorio en el que cree que se está ejecutando un comando?

¿Cómo puedo cambiar el directorio en el que cree que se está ejecutando un comando?

¿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 cdir 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 cdiniciar sesión primero)?

Si es posible, lo usaré en crontab, ya que me asusta la idea de usarlo cdallí.

Respuesta1

¿Por qué te asusta el uso cden crontab?

Tenga en cuenta que si desea cambiar de directorio temporalmente y luego regresar, puede usar pushdypopd

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

información relacionada