本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回はファイルパス中のディレクトリやファイルの情報を表示する「namei」コマンドです。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回はファイルパス中のディレクトリやファイルの情報を表示する「namei」コマンドです。
「namei」はファイルパス中のディレクトリやファイルの情報を表示するコマンドです。ただ表示するだけでなく、「終端」が見つかるまでパス名をたどって結果を表示します。指定したパス名について、途中のパスも含めた全てのリンク先をたどります。シンボリックリンクのリンク先がリンクだった場合でもその先を次々と終端が見つかるまで表示し続けます。
「シンボリックリンクのレベルが深過ぎる」という問題を見つける際に役立つ他、ファイルのパーミッションを、途中のディレクトリも含めて確認するときに便利です。
namei [オプション] パス名……
※ [ ]は省略可能な引数を示しています。
短いオプション | 長いオプション | 意味 |
---|---|---|
-n | --nosymlinks | シンボリックリンクをたどらない |
-m | --modes | パーミッションなどの情報(mode)も表示する(例えば「drwxr-xr-x」) |
-o | --owners | 所有者とグループの名前も表示する |
-v | --vertical | モードと所有者、グループの位置をそろえて表示する |
-l | --long | ロングフォーマットで表示する(「-m -o -v」相当) |
-x | --mountpoints | マウントポイントを「d」ではなく「D」と表示する |
「namei パス名」でパス中のファイルの種類と名前を表示します(画面1)。例えば「namei /dir1/dir2/filename」の場合、「/」「dir1」「dir2」「filename」のそれぞれについて、ファイルの種類と名前を表示します。ファイルや途中のディレクトリがシンボリックリンクだった場合、リンク先についても同様に表示します。「パス名」の部分には、ファイルやディレクトリを複数指定できます。
実行すると、まず、表示対象を「f: パス名」と表示し、その後は、ファイルや途中のディレクトリを1件1行で表示します。
各行の先頭には、ディレクトリならば「d」、シンボリックリンクならば「l」、通常のファイルの場合は「-」を表示します。
シンボリックリンクの場合、インデントした上でリンク先の情報を表示します。
文字 | 意味 |
---|---|
f: | 解析対象のパス名 |
d | ディレクトリ |
l | シンボリックリンク |
s | ソケット |
b | ブロックデバイス |
c | キャラクタデバイス |
p | FIFO(名前付きパイプ) |
- | 通常のファイル |
? | エラー(リンク先がない場合など) |
namei パス名
(対象について、途中のディレクトリについても含めて表示する)
パスの途中などに複数のシンボリックリンクを含んでいた場合は、リンク先を再帰的にたどって表示します(画面2)。
リンクがループしていた場合など、リンク先への参照が一定回数以上繰り返された場合はエラーとなります(画面3)。
nameiコマンドの表示対象となるのは、コマンドラインで指定したパスに含まれているディレクトリとファイルです。
例えば、カレントディレクトリ下の「.bashrc」を「namei .bashrc」と指定した場合は、「.bashrc」についてだけ表示します(画面4)。
「namei ~/.bashrc」のように指定した場合は「~」を展開して結果の「namei /home/ユーザー名/.bashrc」が対象となります。どのようなパス名が対象となったのかは「f:」の行で確認できます。
また、「readlink」コマンド(連載第238回)を使って、「namei `readlink -f .bashrc`」のように指定すると、指定したファイル名を絶対パスにした上で、各ディレクトリについて確認できます(※1)。
※1 readlinkはシンボリックリンクのリンク先を表示するコマンド。「-f」はリンク先を再帰的にたどるためのオプションだが、シンボリックリンクではない場合に指定したファイルのフルパスを表示する機能を備えているために利用した。
Copyright © ITmedia, Inc. All Rights Reserved.