Linuxコマンド · 1 min read · Oct 26, 2025

初心者のためのLinux readlinkおよびrealpathコマンドチュートリアル(例付き)

既にファイル間にリンクを作成するlnコマンドについて説明しました。しかし、いくつかのツールはこれらのリンクを解決することができます。

このチュートリアルでは、出力に解決されたシンボリックリンクを表示する点で似ている(同じでない場合もある)realpathおよびreadlinkコマンドの基本について説明します。しかし、その前に、ここでのすべての例はUbuntu 24.04 LTSおよびDebian 12でテストされていることを言及する価値があります。

Linux realpathおよびreadlinkコマンド

冒頭で述べたように、realpathおよびreadlinkコマンドは、出力にシンボリックリンクの解決されたパスを表示します。

以下はそれらの構文です:

realpath [OPTION]... FILE...
readlink [OPTION]... FILE...

そして、それぞれのmanページには次のように記載されています:

解決された絶対ファイル名を印刷します
解決されたシンボリックリンクまたは標準ファイル名を印刷します

以下は、これらのツールがどのように機能するかをよりよく理解するためのQ&Aスタイルの例です。

Q1. realpathおよびreadlinkを使用してパスを解決するにはどうすればよいですか?

簡単です:ファイルまたはパスを入力として提供するだけです。以下の例では、これらのコマンドがシンボリックリンクを解決しています。

そして、パスでの動作は次のようになります:

このように、両方のコマンドが2つのケースでシンボリックリンクを正常に解決したことがわかります。

Q2. ディレクトリに対して解決されたパスを印刷するにはどうすればよいですか?

realpathコマンドを使用すると、これを簡単に行うことができます。たとえば、次のようなことを試みているとします:

realpath /var/local/Downloadslink

ただし、このコマンドの出力を/home/himanshuディレクトリに対して相対的にするという追加の要件があります。次のコマンドを実行する必要があります:

realpath /var/local/Downloadslink --relative-to=/home/himanshu

出力は次のとおりです:

Downloads

このように、’–relative-to’オプションを使用することで、/home/himanshuディレクトリに対して相対的な出力を得ることができました。

Q3. パスから..を取り除くにはどうすればよいですか?

シンボリックリンクを展開/解決することが目的でない場合、パスから..を取り除くことが目的である場合があります。realpathコマンドを使用すると、これを行うことができます。

必要なのは、-sコマンドラインオプションを使用することだけです。以下はその例です:

realpath -s ../../var/local/Downloadslink

このコマンドの出力は次のとおりです:

/var/local/Downloadslink

Q4. 区切り文字を変更するにはどうすればよいですか?

デフォルトでは、改行が区切り文字として使用されます。ただし、両方のコマンドはNULを区切り文字として使用する方法を提供します。

両方のケースで使用する必要があるオプションは-zです。

realpath -z [FILE/PATH]
readlink -z [FILE/PATH]

結論

ここでは、これらのコマンドが提供するオプション/機能のほんの一部について説明しました。これらの練習が終わったら、readlinkおよびrealpathのmanページ(ここおよびここ)にアクセスして、これらのツールについてさらに学んでください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。