カテゴリ: Linuxコマンド集 更新日: 2026/03/04

realpath -mオプションの使い方を解説!Linuxで存在しないファイルも正規化して絶対パスを取得する方法

realpath -mオプション|存在しないファイルでもパスを正規化して表示する
realpath -mオプション|存在しないファイルでもパスを正規化して表示する

先生と生徒の会話形式で理解しよう

生徒

「先生、Linuxでrealpathコマンドを使ってパスを確認してたら、存在しないファイルでも絶対パスが出てきたんですけど、それって大丈夫なんですか?」

先生

「はい、実はrealpathにはそういう動きをするオプションがあります。特に-mオプションを使うと、存在しないファイルでも“正規化”して絶対パスとして返してくれますよ。」

生徒

「“正規化”ってなんですか?難しそう…」

先生

「大丈夫!簡単な言葉で言うと“整理してきれいな形にする”ってことです。それでは、実際の使い方をわかりやすく見ていきましょう!」

1. realpathコマンドと正規化とは?

1. realpathコマンドと正規化とは?
1. realpathコマンドと正規化とは?

realpath(リアルパス)コマンドは、Linuxでファイルやディレクトリの絶対パス(すべての階層を含む完全なパス)を表示するためのコマンドです。

このとき、「正規化(せいきか)」とは、無駄な記号(例:...)を取り除いて、整理された形のパスに変換する処理のことを言います。

-mオプションは、存在していないファイルやディレクトリでもこの“整理された絶対パス”を返してくれるのが特徴です。

2. -mオプションの基本的な使い方

2. -mオプションの基本的な使い方
2. -mオプションの基本的な使い方

-m--canonicalize-missingという長い名前の省略形です。どちらも同じ機能ですが、短い-mの方がよく使われます。

次のようなコマンドを実行してみましょう。


realpath -m ./docs/../notes/new.txt
/home/user/notes/new.txt

この例では、./docs/../notes/new.txtという「ややこしいパス」を、無駄な部分を取り除いてスッキリとした形に変換しています。

そして、このファイルnew.txtはまだ存在していなくても、realpath -mは絶対パスを返してくれます。

3. 存在しないファイルを指定した場合の動作

3. 存在しないファイルを指定した場合の動作
3. 存在しないファイルを指定した場合の動作

以下のように、実在しないファイルを指定してもエラーにはなりません。


realpath -m /home/user/missing/file.txt
/home/user/missing/file.txt

このとき、file.txtmissingディレクトリも実在していなくても構いません。

ファイルが実際にあるかどうかに関係なく、正規化されたパスが返ってくるのが-mオプションの特徴です。

4. -eオプションとの違いを理解しよう

4. -eオプションとの違いを理解しよう
4. -eオプションとの違いを理解しよう

-e(もしくは--canonicalize-existing)は、存在するファイル・ディレクトリのみを対象にします。

一方、-mは存在しなくても構いません。


realpath -e /tmp/abc.txt
realpath: '/tmp/abc.txt' を解決できません: そのようなファイルやディレクトリはありません

realpath -m /tmp/abc.txt
/tmp/abc.txt

このように、柔軟にパスを扱いたいときは-m、安全第一でいきたいときは-eという使い分けができます。

5. スクリプトでの活用シーン

5. スクリプトでの活用シーン
5. スクリプトでの活用シーン

-mオプションは、以下のような場面でとても便利です。

  • まだ作られていないファイルのパスを事前に確認したいとき
  • ログファイルの出力先パスを整形しておきたいとき
  • ユーザー入力の相対パスをきれいな絶対パスに変換したいとき

以下は、ファイル作成予定のパスを確認する例です。


newfile=$(realpath -m ./output/new_log.txt)
echo "ファイルを作成予定のパス:$newfile"

これで、new_log.txtがまだ無くても、安全にフルパスを準備できます。

6. 他のrealpathオプションとの併用は?

6. 他のrealpathオプションとの併用は?
6. 他のrealpathオプションとの併用は?

realpathには他にも便利なオプションがありますが、-mとは併用できないオプションもあります。

  • -eとの併用 → 不可(機能が真逆)
  • -s(シンボリックリンクを解決しない)→ 使用可

たとえば、-m-sを組み合わせて、シンボリックリンクを無視してパスだけを整える使い方もあります。


realpath -m -s ./some_symlink/file.txt
/home/user/some_symlink/file.txt

このように、-mは正規化処理が中心なので、他のオプションと組み合わせるときは目的を明確にすることが大切です。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
find -newerオプションの使い方を完全ガイド!基準ファイルより新しいファイルを検索しよう
New2
テキスト・データ処理
grep(グレップ)--exclude-dir(エクスクルード ディレクトリ)オプション完全ガイド!特定フォルダを除外して検索する方法
New3
ファイル・ディレクトリ操作
Linuxのmkdir -pオプションを完全解説!初心者でもわかる親ディレクトリまとめ作成の基本
New4
ファイル・ディレクトリ操作
Linuxのmkdirコマンドとは?初心者でもわかる新しいディレクトリ作成の基本
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本