Shellでスクリプトがあるディレクトリの絶対パスを取得する方法


実行中のプログラム/スクリプト自体に保存されている絶対パスを得るには、PHP内でdirname(realpath)を使用することができます。FILE__)C((zhi)はSystem.Windows.Forms.Appplication.StartuPathがあります。javaには直接的な方法がないようです。CodeSourceを利用して間接的に取得するしかないです。Linux shellスクリプトの中で現在のスクリプトファイルに保存されている絶対パスを取得したいなら、既成のコマンドでも呼び出すことができますが、次のステートメントで取得できます。

baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd)
echo "full path to currently executed script is : ${baseDirForScriptSelf}"
大部分の状況の下で私達はこのような絶対的なルートを必要としないで仕事を完成します。しかし、複数のシナリオ、データファイルなどをパッケージ化して全体として他の人に渡す場合、どのディレクトリにコピーしてスクリプトを実行しても、このパッケージの他の内容を正確に見つけることができるようにするには、このようなシナリオで自動的にパッケージのルートディレクトリを特定するのが良いでしょう。