目次
realpathコマンドとは?
realpath
コマンドは、指定したファイルやディレクトリの絶対パスを取得するためのコマンドです。
シェルスクリプトなどで変数にパスを設定するときに便利です。
基本的な構文
realpath [オプション] ファイルまたはディレクトリ
ファイルまたはディレクトリ
:対象となるファイルやディレクトリのパス。- オプションについては後述します。
realpathの実行例
1. 絶対パスの取得
realpath
コマンドを使うと、指定した相対パスが絶対パスに変換されます。
$ realpath ./test
/home/user/test
この場合、カレントディレクトリのtestファイルの絶対パスが得られます。
2. シンボリックリンクの解決
シンボリックリンクの実際の参照先を表示します。
$ ln -s /etc/passwd link_to_passwd
$ realpath link_to_passwd
/etc/passwd
link_to_passwd
が指す本来のファイルパスを表示します。
3. 存在しないパスの確認
指定したパスが存在しない場合でも、絶対パスが生成されます。
$ realpath ./nonexistent
/home/user/nonexistent
主なオプション
--canonicalize
/ -c
$ realpath -c ./test
/home/user/test
与えられたパスを正規化して絶対パスを出力します(デフォルト動作)。
--no-symlinks
/ -m
シンボリックリンクを解決せずに絶対パスを出力します。
$ realpath -m link_to_passwd
/home/user/link_to_passwd
--relative-to=PATH
指定したパスに対して相対パスを計算します。
$ realpath --relative-to=/home/user /home/user/test
./test
スクリプトでの活用例
シェルスクリプトの実行ディレクトリを取得
シェルスクリプトの中でどのディレクトリで実行されているのかを取得する際、cd
とpwd
を組み合わせるやり方がよく見られます。
#!/bin/bash
script_dir=$(cd $(dirname $0); pwd)
realpath
でより簡潔に記述することができます。
#!/bin/bash
script_dir=$(realpath $(dirname $0))
コメント