Linuxにはパスの展開を出来るコマンドがあればいいなと思ったけど、Linuxのシステムコールにはあるっぽいけど、コマンドにはないみたい。
Rubyワンライナーで解決。
ruby -e File.expand_path を応用してやればいい。
ワンライナーと組み合わせて一発でやろう。
takuya@air $ ruby -e 'puts File.expand_path(ARGV[0])' /var/www/../ /var
コマンド作成。の紹介されているブログ
http://x68000.q-e-d.net/~68user/unix/pickup?realpath
これはC言語で実装する例。
面倒なのですよね。
rubyでも同じことが出来るんですけど。コマンドでどうやればいいですかね。っておもって調べたけど、面倒なので、ワンライナーでいいと思いました。
参考資料
#!/bin/sh #↓自身のスクリプトの絶対パス(ファイル名無し) echo $(cd $(dirname $0);pwd) #↓自身のスクリプトの絶対パス(ファイル名有り) echo $(cd $(dirname $0) && pwd)/$(basename $0) path = ../../../hoge echo $(cd $(dirname $path);pwd) echo basename $path(Linux)シェルスクリプトで自身の絶対パスを取得したい : 3流プログラマのメモ書き
追記 2012-04-18 ブクマコメへ 返信
genzouw : realpathコマンドでよくね? / [linux]Linuxで相対パスを絶対パスに変換する。
realpathコマンドでもいいんだけど、realpathコマンドって最初から入ってないし。
インストールは
apt-get install realpath
で、出来る。全部のサーバーに入れるのは面倒だなと思った。