如何更改命令認為正在運行的目錄?

如何更改命令認為正在運行的目錄?

如何運行位於不同目錄中的命令,以便該命令認為我已在當前目錄中運行它?

如果命令使用basename()or argv[0](或任何它的名稱)來獲取調用它的位置,並且它需要其目錄中的文件,它可能會在您調用應用程式的目錄中查找;即錯誤的。

當然,您可以cd先進入目錄並在那裡調用它,但是有沒有一種方法可以調用應用程序,以便它認為您已經從其目錄運行了它(無需cd先 ing)?

如果可能的話,我會在 中使用它crontab,因為在那裡使用的想法cd讓我感到害怕。

答案1

為什麼cdcrontab 使用會讓你感到害怕?

請注意,如果您只想暫時更改目錄然後再回來,您可以使用pushdpopd

答案2

您可以製作這樣的腳本:

#!/bin/sh
cd /dir/
yourcommand

然後將其保存在某處並將該腳本添加到 crontab

相關內容