- 書式
- realpath path
概要
realpath
コマンドは
関数としても
ビルトイン としても
実装されています。
関数の方は、
- 外部コマンドとして
realpath
コマンドが存在する場合はそれを使い - 存在しない場合はビルトインを使う
ようにします。
fishでは
移植性を確保するために
ビルトインを用意しました。
ビルトインの方は
オプションを取りません。
あくまでも
移植性が必要なスクリプトを
書くときのみ必要です。
オプションをつけないで
起動した場合は、
GNU realpath(日本語マニュアル) のように
振舞います(最も一般的な場面)。
一般的なスクリプトでは
ビルトインを直接
呼ばないでください。
そのまま realpath
を使ってください。
path
が不正な場合は、
変換されないパスが
標準出力に出力され、
エラーも出ます。
訳注:実際はエラーのみ出力されるようです。
実行例
/tmp以下に
d1
ディレクトリを作成しd1/a_file
ファイルを作成しd1
にdlink
というシンボリックリンクを作成
した状態で realpath
を使います。
$ cd /tmp $ mkdir d1 $ touch d1/a_file $ ln -s d1 dlink $ realpath d1/a_file /tmp/d1/a_file $ realpath dlink/a_file /tmp/d1/a_file $ rm dlink; rm -rf d1
存在しない
ディレクトリとファイルを
指定するとエラーになります。
$ realpath /tmp/a/b realpath: Invalid path: /tmp/a/b
最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。