
如何運行位於不同目錄中的命令,以便該命令認為我已在當前目錄中運行它?
如果命令使用basename()
or argv[0]
(或任何它的名稱)來獲取調用它的位置,並且它需要其目錄中的文件,它可能會在您調用應用程式的目錄中查找;即錯誤的。
當然,您可以cd
先進入目錄並在那裡調用它,但是有沒有一種方法可以調用應用程序,以便它認為您已經從其目錄運行了它(無需cd
先 ing)?
如果可能的話,我會在 中使用它crontab
,因為在那裡使用的想法cd
讓我感到害怕。
答案1
為什麼cd
crontab 使用會讓你感到害怕?
請注意,如果您只想暫時更改目錄然後再回來,您可以使用pushd
和popd
答案2
您可以製作這樣的腳本:
#!/bin/sh
cd /dir/
yourcommand
然後將其保存在某處並將該腳本添加到 crontab