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

realpath -zオプションの使い方|出力をヌル文字で区切るLinuxコマンド解説

realpath -zオプション|出力をヌル文字で区切る
realpath -zオプション|出力をヌル文字で区切る

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

生徒

「先生、realpathコマンドってなんですか?それと、-zオプションってどういうときに使うんですか?」

先生

realpathはファイルやディレクトリの『本当の場所(絶対パス)』を表示してくれるコマンドなんだ。-zオプションは、その出力を特別な文字で区切るために使うんだよ。」

生徒

「特別な文字?改行じゃダメなんですか?」

先生

「うん、改行だと困る場面もあるからね。具体的にどういうときに使うか、一緒に学んでいこう!」

1. realpathコマンドとは?

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

realpath(リアルパス)コマンドは、Linuxでファイルやディレクトリの「絶対パス(すべての階層を含んだ正確な場所)」を表示するための便利なコマンドです。たとえば、シンボリックリンク(ショートカットのようなもの)を使っていると、本当のファイルの場所が分かりにくくなることがあります。そういったときにrealpathを使うと、実際に存在する正確なパスを表示してくれるのです。

2. -zオプションの意味とは?

2. -zオプションの意味とは?
2. -zオプションの意味とは?

-zオプションは、出力の区切り文字を「ヌル文字(NULL文字)」にするオプションです。通常、Linuxコマンドの出力は1行ごとに「改行(Enterキーと同じ)」で区切られますよね。ですが、ファイル名にスペースや改行が含まれていると、処理がうまくいかなくなることがあります。

そこで登場するのが-z。これは、区切り文字を改行ではなく、目に見えない「ヌル文字(\0)」にして、スクリプトや他のコマンドと組み合わせたときに正しく処理できるようにするためのものです。

3. 具体的な使用例を見てみよう

3. 具体的な使用例を見てみよう
3. 具体的な使用例を見てみよう

たとえば、カレントディレクトリ(今いる場所)にあるファイルやディレクトリのパスを出力する例です。


realpath -z ./Documents ./Downloads
/home/user/Documents/home/user/Downloads

この出力では、実際には改行の代わりに「\0(ヌル文字)」で区切られています。目に見えませんが、改行ではない特別な記号で区切られているため、後続のコマンドが誤認しにくくなります。

4. xargsやfindと組み合わせて使う実践例

4. xargsやfindと組み合わせて使う実践例
4. xargsやfindと組み合わせて使う実践例

-zオプションが特に活躍するのは、他のコマンドと組み合わせたときです。たとえば、ファイルの一覧をfindで取得して、realpath -zに渡すという使い方が便利です。


find . -name "*.txt" -print0 | xargs -0 realpath -z

このコマンドでは、findで見つかった「.txtファイル」を\0で区切って渡し、realpathがその絶対パスを同じく\0で出力します。こうすることで、スペースや改行を含むファイル名でも安全に処理できます。

5. なぜNULL文字での区切りが必要なの?

5. なぜNULL文字での区切りが必要なの?
5. なぜNULL文字での区切りが必要なの?

通常のファイル名には、スペース・タブ・改行などが含まれることがあります。たとえば、以下のようなファイル名があったとします:


My Document.txt

このようなファイルを改行区切りで処理すると、「My」と「Document.txt」に分かれてしまうおそれがあります。しかし、-zオプションでヌル文字区切りにすれば、そのようなトラブルを避けることができます。

6. realpathと他コマンドの違いにも注目

6. realpathと他コマンドの違いにも注目
6. realpathと他コマンドの違いにも注目

似たような役割を持つコマンドにreadlinkpwdがありますが、それぞれ特徴が異なります。

  • readlink:シンボリックリンクの「リンク先」だけを表示
  • pwd:現在のディレクトリの絶対パスを表示
  • realpath:通常のファイルも含め、絶対パス+正規化されたパスを表示

つまり、realpathreadlinkpwdの良いとこ取りのような存在なんです。そこに-zを組み合わせることで、より柔軟な処理が可能になります。

7. -zと組み合わせると便利なオプション

7. -zと組み合わせると便利なオプション
7. -zと組み合わせると便利なオプション

realpathには他にもさまざまなオプションがあります。-zと一緒に使える便利なオプションの例を紹介します。

  • --relative-to=DIR:指定したディレクトリからの相対パスを出力
  • --canonicalize:余計なパス記号を正規化
  • --no-symlinks:シンボリックリンクを解決せずに表示

例えば、以下のように書くと、ヌル文字で区切りながら相対パスを取得できます。


realpath -z --relative-to=/home/user ./Documents
Documents

8. スクリプトで使うときの注意点

8. スクリプトで使うときの注意点
8. スクリプトで使うときの注意点

Shellスクリプトでrealpath -zを使うときは、パイプ(|)でつないでxargs -0などと組み合わせることが基本です。ヌル文字区切りに対応したオプションを使わないと、意図しない分割が起こるので注意しましょう。

関連記事:
カテゴリの一覧へ
新着記事
New1
Linuxコマンドの基本
Linuxのパイプ(|)とは?複数コマンドをつなげて効率化する方法を完全解説
New2
テキスト・データ処理
tailコマンドとは?Linuxでファイルの末尾を表示する基本をやさしく解説!
New3
ファイル・ディレクトリ操作
find -groupオプションの使い方を解説!初心者でもできる所有グループによるファイル検索
New4
圧縮・アーカイブ
rar xオプションの使い方を完全ガイド!Linuxでディレクトリ構造を保持して展開する方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
圧縮・アーカイブ
gzipコマンドの使い方を完全ガイド!初心者でもわかるLinuxでファイル圧縮の基本