コマンドが実行されるディレクトリを変更するにはどうすればよいでしょうか?

コマンドが実行されるディレクトリを変更するにはどうすればよいでしょうか?

別のディレクトリにあるコマンドを、現在のディレクトリで実行したとコマンドが認識するようにするにはどうすればよいでしょうか?

コマンドが、呼び出し元を取得するためにbasename()またはargv[0](またはそれが呼び出される任意のもの) を使用しており、そのディレクトリ内のファイルが必要な場合、アプリケーションを呼び出したディレクトリ、つまり間違ったディレクトリを検索する可能性があります。

もちろん、cd最初にディレクトリに移動してそこから呼び出すこともできますが、cd最初に を実行せずに、アプリケーションをそのディレクトリから実行したと認識させるように呼び出す方法はありますか?

可能であれば、 でこれを使用しますcrontab。 でこれを使用することを考えるとcd怖いです。

答え1

cdcrontab で使用するのがなぜ怖いのでしょうか?

一時的にディレクトリを変更して戻ってきたい場合は、次のようpushdに使用できます。popd

答え2

次のようなスクリプトを作成できます。

#!/bin/sh
cd /dir/
yourcommand

次にそれをどこかに保存し、そのスクリプトをcrontabに追加します

関連情報