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

realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法

realpath -eオプション|存在するファイルのみ絶対パスを返す方法
realpath -eオプション|存在するファイルのみ絶対パスを返す方法

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

生徒

「Linuxでrealpathを使ってファイルの絶対パスを調べたいんですが、存在しないファイルでも結果が出るって聞いたことがあります。間違ったファイル名でも出るんですか?」

先生

「実はその通りなんです。普通にrealpathを使うと、まだ存在しないパスでも計算して出してくれます。でも、それを防ぐ方法がありますよ。」

生徒

「それって安全面でも気になりますね…。どうすれば防げるんですか?」

先生

「そんなときに使うのが-eオプションです。存在するファイルやディレクトリだけを対象にして、実際にあるパスしか表示しないようにできますよ。それでは詳しく見ていきましょう!」

1. realpathコマンドと-eオプションの関係

1. realpathコマンドと-eオプションの関係
1. realpathコマンドと-eオプションの関係

realpath(リアルパス)コマンドは、Linuxでファイルやディレクトリの絶対パス(完全な場所)を表示するために使います。

しかし通常は、指定したパスが実在しなくても「存在するもの」として扱ってしまうため、間違ったファイル名やタイプミスをそのまま表示してしまうことがあります。

そこで役立つのが-eオプションです。このオプションを付けると、実際に存在するファイルやディレクトリだけを対象として、正しい絶対パスだけを表示してくれます。

2. realpath -e の基本的な使い方

2. realpath -e の基本的な使い方
2. realpath -e の基本的な使い方

まずは通常のrealpathコマンドを使った例を見てみましょう。


realpath myfolder/sample.txt
/home/user/myfolder/sample.txt

この例では、たとえmyfolder/sample.txtが実際に存在していなくても、形式的には絶対パスを表示してくれます。しかし、存在しないファイルを操作しようとして、エラーになることもあります。

ここで-eオプションを使った場合を見てみましょう。


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

このように、存在しないファイルには絶対パスを返さず、エラーメッセージを表示してくれるのが-eオプションの特徴です。

3. 実在するファイルでの成功例

3. 実在するファイルでの成功例
3. 実在するファイルでの成功例

では、実際に存在するファイルに対して-eオプションを使った場合の例を見てみましょう。


realpath -e /etc/hosts
/etc/hosts

このように、/etc/hostsのような確実に存在するファイルを指定すれば、問題なく絶対パスが返ってきます。

4. -eオプションの使いどころ

4. -eオプションの使いどころ
4. -eオプションの使いどころ

-eオプションが便利に使えるのは、以下のような場面です。

  • スクリプトや自動化処理の中で、本当に存在するファイルだけ処理したいとき
  • ユーザーから受け取ったパスが正しいかどうかを検証したいとき
  • シンボリックリンクのリンク先が存在するかチェックしたいとき

誤ったファイルパスで処理が止まるのを防ぐためにも、-eをうまく活用することがポイントです。

5. realpathの他のオプションとの組み合わせ例

5. realpathの他のオプションとの組み合わせ例
5. realpathの他のオプションとの組み合わせ例

realpathには他にも便利なオプションがありますが、-eとよく一緒に使われるのが-sです。

  • -e → 実在するファイルだけを対象にする
  • -s → シンボリックリンクをたどらず、そのままのリンクを表示する

例えば次のように組み合わせて使います:


realpath -e -s mylink
/home/user/mylink

このように、リンク自体が存在すれば、そのリンクのパスが表示されます。リンク先をたどりたくない場合などに便利です。

6. realpath -eとtestコマンドの違い

6. realpath -eとtestコマンドの違い
6. realpath -eとtestコマンドの違い

testコマンド([ -e ファイル名 ]という書き方でも同じ)は、ファイルが存在するかどうかを調べるために使います。

一見すると、realpath -eと似ているようですが、実は用途が少し違います。

  • test → 存在するか「だけ」を調べて、表示はしない
  • realpath -e → 存在する「うえで」、絶対パスを出力してくれる

[ -e /etc/hosts ] && echo "存在します"
存在します

このように、testは条件判定に特化していますが、realpath -eはそのファイルの絶対パスまで出力できるのが強みです。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
New4
ファイル・ディレクトリ操作
touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
Linuxのls --full-timeオプションを完全ガイド!初心者でもわかるタイムスタンプのフル表示方法