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

realpath --canonicalize-missingの使い方を初心者向けに解説!存在しないパスも正しく表示する方法

realpath --canonicalize-missingオプション|-mと同じ挙動で欠けたパスも処理する
realpath --canonicalize-missingオプション|-mと同じ挙動で欠けたパスも処理する

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

生徒

「Linuxで、まだ存在していないファイルやディレクトリのフルパスを確認したいんですが、どうすればいいですか?」

先生

「それなら、realpathコマンドの--canonicalize-missingオプションを使うと便利ですよ。」

生徒

「それって、-mオプションと同じですか?」

先生

「その通りです。--canonicalize-missingは、-mと同じ働きをします。では、どんなときに使えるのか一緒に見ていきましょう!」

1. realpathコマンドとは?

1. realpathコマンドとは?
1. realpathコマンドとは?

realpath(リアルパス)コマンドは、Linuxで指定したパスを「絶対パス(フルパス)」に変換して表示するためのコマンドです。

絶対パスとは、「どの場所にファイルやディレクトリがあるか」をルートディレクトリ(/)からすべての階層をたどって表す書き方のことです。

たとえば、相対的な場所である../test/file.txtなどを、実際のフルパスである/home/user/test/file.txtのように変換してくれます。

2. --canonicalize-missingオプションとは?

2. --canonicalize-missingオプションとは?
2. --canonicalize-missingオプションとは?

--canonicalize-missingオプションは、指定されたファイルやディレクトリがまだ存在していない場合でも、パスの正規化(整った形に変換)を行ってくれる便利なオプションです。

たとえば、「まだ作っていないファイルの場所」を確認したいときなどに使えます。

このオプションは短縮形として-mでも同じ意味になります。どちらを使っても動作は同じです。

3. 存在しないパスでも正規化できる例

3. 存在しないパスでも正規化できる例
3. 存在しないパスでも正規化できる例

次のようなコマンドを実行してみましょう。今回は、まだ作っていないdata/report.txtというファイルのパスを確認してみます。


realpath --canonicalize-missing ./data/report.txt
/home/user/data/report.txt

このように、たとえdatareport.txtが存在しなくても、パスを絶対パスで教えてくれます。

4. 存在するパスとの違いを確認

4. 存在するパスとの違いを確認
4. 存在するパスとの違いを確認

もし、同じコマンドを--canonicalize-existing(または省略)で実行した場合、ファイルやディレクトリが存在しないとエラーになります。


realpath ./data/report.txt
realpath: ./data/report.txt: No such file or directory

このように、存在することが前提のコマンドでは、ファイルが無いと怒られてしまうのです。だから、--canonicalize-missingを使うと安心ですね。

5. --canonicalize-missingと-mの違いは?

5. --canonicalize-missingと-mの違いは?
5. --canonicalize-missingと-mの違いは?

実は、--canonicalize-missing-mには機能的な違いはありません。どちらを使っても結果は同じになります。

違いは書き方だけで、--canonicalize-missingは「わかりやすい英語表記」、-mは「短くて打ちやすい略記」という違いです。

6. ディレクトリ構造が一部欠けていても大丈夫

6. ディレクトリ構造が一部欠けていても大丈夫
6. ディレクトリ構造が一部欠けていても大丈夫

次のように、途中のディレクトリがいくつか存在しない場合でも、正規化された絶対パスを表示できます。


realpath --canonicalize-missing ./archive/2025/09/report.txt
/home/user/archive/2025/09/report.txt

このように、実際にファイルやフォルダが存在しなくても、realpathコマンドは「あると仮定して」パスを組み立ててくれます。

7. 応用:スクリプト内での使用例

7. 応用:スクリプト内での使用例
7. 応用:スクリプト内での使用例

たとえば、シェルスクリプトなどでファイルを先に指定してパスを計算しておきたいときに便利です。


#!/bin/bash
target_path=$(realpath --canonicalize-missing ./temp/output.txt)
echo "出力ファイルのパスは:$target_path"

このように、あらかじめファイルの保存場所を計算しておきたいときに役立ちます。

8. 他のrealpathオプションとの違い

8. 他のrealpathオプションとの違い
8. 他のrealpathオプションとの違い

realpathコマンドには、他にもいくつかのオプションがあります。以下に違いを簡単にまとめます。

  • realpath:ファイルやディレクトリが存在していないとエラーになる。
  • realpath -m:存在しないものでもパスを正規化して表示。
  • realpath -e:存在しているものだけを対象にする(エラーが出やすい)。

初心者の方がパスの確認をしたいときには、-m--canonicalize-missingを使うのが安心です。

9. realpathとreadlinkの違いは?

9. realpathとreadlinkの違いは?
9. realpathとreadlinkの違いは?

realpathと似たコマンドにreadlinkがあります。readlinkもファイルの実際の場所を調べるコマンドですが、realpathのほうが柔軟で高機能です。

特に--canonicalize-missingのように、「存在しないファイルでも扱える」という点では、realpathの方が便利です。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
realpath --canonicalize-missingの使い方を初心者向けに解説!存在しないパスも正しく表示する方法
New2
テキスト・データ処理
grep -nオプションの使い方|一致した行の行番号を表示する基本
New3
ファイル・ディレクトリ操作
dirname --multipleオプション|複数のパスをまとめて処理する方法
New4
プロセス管理
topコマンドの基本を完全解説!リアルタイムでLinuxプロセスを監視する方法
人気記事
No.1
Java&Spring記事人気No1
Linuxコマンドの基本
Linuxコマンドとは?基本の考え方とシェルとの関係を初心者向けに徹底解説
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
find -mtimeオプションを完全解説!初心者でもわかる更新日でファイルを検索する方法