No.033ファイルとフォルダ
readlink
リードリンク・リンク先表示
シンボリックリンクが指している文字列や、条件に応じて解決後のパスを出力します。リンクが多い環境の調査で重要です。
答えよく使う形
$ ln -s target.txt link.txt
readlink link.txt
target.txt
$ readlink -f link.txt
/tmp/readlink-demo/target.txt
$ readlink current
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
どんなコマンド?
シンボリックリンクの向き先を確認したい時、デプロイ先のcurrentリンクを確認したい時、リンク切れの調査やパス解決の前段確認をしたい時に使います。
readlinkは、シンボリックリンクが保持している参照先文字列を表示するコマンドです。単純にリンクファイルの中身を見たい時に最適で、実体に到達するかどうか、相対リンクか絶対リンクかを確認するのに役立ちます。
GNU実装では-fや-eなどを使って実体解決まで進めることもできます。ただし、この場合は「リンク文字列を読む」だけでなく「途中経路を解決する」動作になるため、単純な表示と正規化を区別して理解することが重要です。
実務では、設定切り替え先の確認、currentリンクの向き先確認、壊れたリンクの切り分け、デプロイ構成の把握などで使います。lnやrealpathと合わせて学ぶと理解が深まります。
書き方とオプション
組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。
$ readlink
使用例と実行結果
行を押すとコピーできます。
target.txt
/tmp/readlink-demo/target.txt
まず安全に試す
3分ミッション
手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。
0 / 2
つまずいたとき
リンク先の実体が欲しかったのに文字列だけ出た
原因通常のreadlinkは参照文字列をそのまま表示します。
こうする実体解決が必要なら-fや-eを使います。
readlink -eが何も返さない
原因途中要素か末尾要素が存在しません。
こうする存在しない経路も含めて扱うなら-mを検討し、実体確認を別途行います。
終わったときの数(戻り値)
$ echo $?
- 0正常終了。指定条件で結果を表示できました。
- >0対象がリンクでない、存在しない、解決条件を満たさないなどで失敗しました。
気をつけることと入れ方
危険度は低いですが、-fや-eの結果を見て「常にその実体が使われている」と早合点しないことが大切です。相対リンクと実行時の基準位置も合わせて確認してください。
環境による違い
readlinkはPOSIX標準の基本ユーティリティではなく、GNU拡張のオプション依存が強いコマンドです。-fや-e、-mの有無や意味は実装差に注意が必要です。
確かめた環境2026-04-09 に確認
よくある質問
readlinkとrealpathの違いは何ですか。
readlinkはリンク文字列の確認にも向き、realpathは正規化された実体パス取得に向いています。
通常ファイルに対して使えますか。
実装やオプションによりますが、リンクでない対象では期待する情報が得られないことがあります。
readlink を最後まで読みました。
Linux コマンド辞典に戻る92 / 144