readlink コマンドは、シンボリックリンクのターゲットを表示するユーティリティです。NetBSD 1.6 と FreeBSD 4.10 に登場しました。シンボリックリンクの解決に使用され、リンク先のファイルパスを表示することができます。

基本的な使い方

編集
readlink [オプション] リンク

主なオプション

編集
主なオプション
オプション 説明
-f, --canonicalize リンク先がシンボリックリンクの場合、最終的なターゲットをフルパスで表示
-e, --canonicalize-existing 存在するファイルに対して、最終的なフルパスを表示
-m, --max-chars 出力の最大文字数を制限

シンボリックリンクのターゲットを表示

編集
readlink linkname

linkname が指し示すターゲットのファイルパスを表示。

リンク先の最終的なターゲットをフルパスで表示

編集
readlink -f linkname

linkname の最終的なターゲットをフルパスで表示。

存在するリンク先のフルパスを表示

編集
readlink -e linkname

存在するリンク先のフルパスを表示。

FreeBSD 版との違い

編集

FreeBSD と NetBSD の両方で readlink コマンドは利用可能ですが、これらのシステム間でオプションにわずかな違いがあります。

主な違い:

編集
  1. FreeBSD では、-f オプションがシンボリックリンクのターゲットを解決する際にリンクの解決を繰り返す際に再帰的に処理するのに対し、NetBSD は単一のリンク解決までで処理が終わる場合があります。
  2. FreeBSD では、-e オプションが存在し、リンクのターゲットが存在しない場合はエラーを返します。NetBSD では、このオプションはサポートされていません。

詳しくは、それぞれの環境で man readlink を確認してください。