如何更改命令认为正在运行的目录?

如何更改命令认为正在运行的目录?

我如何运行位于不同目录中的命令,以便该命令认为我已经在当前目录中运行了它?

如果命令使用basename()argv[0](或任何它的名称)来获取其调用位置,并且它需要其目录中的文件,则它可能会在调用该应用程序的目录中查找;即错误的目录。

当然,您可以cd先进入目录并在那里调用它,但有没有办法调用该应用程序,让它认为您已经从其目录运行它(无需cd先运行)?

如果可能的话,我会在 中使用它crontab,因为想到cd在那里使用就让​​我害怕。

答案1

为什么cd在 crontab 中使用会让你害怕?

请注意,如果您只是暂时更改目录然后返回,则可以pushd使用popd

答案2

您可以制作如下脚本:

#!/bin/sh
cd /dir/
yourcommand

然后将其保存在某个地方并将该脚本添加到 crontab

相关内容