[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10.1.2 表示する情報

以下のオプションは、ls がどんな情報を表示するかに関係している。 ls がデフォルトで表示するのは、ファイル名だけである。

--author

詳細形式でディレクトリ内容のリストを出力する際、各ファイルの作成者情報を表示する。 GNU/Hurd では、ファイルの作成者 (author) はファイルの所有者 (owner) と別人であることがあるが、他のオペレーティング・システムでは、両者は同一である。

-D
--dired

詳細表示形式 (‘-l’) と併せて使用すると、 出力本体の後ろに以下のような追加の行を表示する。

 
//DIRED// beg1 end1 beg2 end2

begnendn は符号なしの整数であり、 出力における各ファイル名の開始バイト位置と終了バイト位置を示している。このようにすることで、 ファイル名に空白や改行のような普段使わない文字が含まれている場合でも、手の込んだ検索をするまでもなく、 Emacs が簡単にファイル名を見つけられるようにしているのである。

ディレクトリを再帰的にリストしている場合には (‘-R’)、 各サブディレクトリ名のオフセットを記した同様の行も出力する。

 
//SUBDIRED// beg1 end1

そして最後に、次の形式の行を出力する。

 
//DIRED-OPTIONS// --quoting-style=word

ここで、word はクォートの方式である (see section ファイル名のフォーマット)。

実例を挙げてみる。

 
$ mkdir -p a/sub/deeper a/sub2
$ touch a/f1 a/f2
$ touch a/sub/deeper/file
$ ls -gloRF --dired a
  a:
  total 8
  -rw-r--r-- 1    0 Jun 10 12:27 f1
  -rw-r--r-- 1    0 Jun 10 12:27 f2
  drwxr-xr-x 3 4096 Jun 10 12:27 sub/
  drwxr-xr-x 2 4096 Jun 10 12:27 sub2/

  a/sub:
  total 4
  drwxr-xr-x 2 4096 Jun 10 12:27 deeper/

  a/sub/deeper:
  total 0
  -rw-r--r-- 1 0 Jun 10 12:27 file

  a/sub2:
  total 0
//DIRED// 48 50 84 86 120 123 158 162 217 223 282 286
//SUBDIRED// 2 3 167 172 228 240 290 296
//DIRED-OPTIONS// --quoting-style=literal

上記 ‘//DIRED//’ 行の 2 個づつ組になっているオフセットは、次の 6 個の名前の区切りとなるバイト位置を示している (訳注: 別の言い方をするなら、出力の先頭からある名前の直前までのバイト数と、 その名前の最後の文字までのバイト数を示している)。6 個の名前とは、すなわち ‘f1’, ‘f2’, ‘sub’, ‘sub2’, ‘deeper’, ‘file’ である。 ‘//SUBDIRED//’ の行のオフセットが示しているのは、次のディレクトリ名の区切りである。 ‘a’, ‘a/sub’, ‘a/sub/deeper’, ‘a/sub2’。

下記の例では、5 番目の項目の名前 ‘deeper’ を抜き出してみせている。 この項目の名前は、217 と 223 のオフセットの組に対応している。

 
$ ls -gloRF --dired a > out
$ dd bs=1 skip=217 count=6 < out 2>/dev/null; echo
deeper

上記のファイル一覧表示では、‘deeper’ という項目の後ろにスラッシュが付いているが、 オフセットが名前として選択しているのは、後ろのスラッシュを除いた部分であることに注目していただきたい。 しかしながら、ls を ‘--dired’ とともに ‘--escape’ (短縮形は ‘-b’) のようなオプションを付けて実行し、 名前に特殊文字が入っているファイルを処理の対象にする場合には、 バックスラッシュがオフセットの示す範囲のうちに含まれることに注意しなければならない。

 
$ touch 'a b'
$ ls -blog --dired 'a b'
  -rw-r--r-- 1 0 Jun 10 12:28 a\ b
//DIRED// 30 34
//DIRED-OPTIONS// --quoting-style=escape

引用符を付加するクォート方式を使用している場合には (たとえば、 ‘--quoting-style=c’)、引用符もオフセットの示す範囲に含まれる。 そこで、そうしたクォート方式が、環境変数 QUOTING_STYLE によって選択されている可能性も考慮に入れておくべきだ。 すなわち、‘--dired’ を使用するアプリケーションでは、 コマンドラインで明示的に ‘--quoting-style=literal’ オプションを指定するか (‘-N’ や ‘--literal’ と指定しても同じことだ)、 あるいは、エスケープされた名前を解析できるするようにしておくか、 どちらかをするべきだということである。

--full-time

詳細形式でディレクトリ内容のリストを生成し、日時の情報を省略なしで表示する。 これは、‘--format=long’ を ‘--time-style=full-iso’ と一緒に使うのと同じである (see section タイムスタンプのフォーマット)。

-g

詳細形式でディレクトリ内容のリストを生成するが、所有者情報は表示しない。

-G
--no-group

詳細形式でディレクトリ内容をリスト表示する際に、グループ情報を表示しない (GNU 版以外の ls には、この動作がデフォルトのものがある。 そこで、互換性のために、このオプションを用意している)。

-h
--human-readable

各サイズの後ろに、メビバイトなら ‘M’ といった、大きさを示す文字を付ける。 1000 ではなく、1024 の累乗が使われるので、‘M’ は 1,048,576 バイトを表している。このオプションは、‘--block-size=human-readable’ と同じである。1000 の累乗が使いたければ、"‘--si’ オプションを使用すればよい。

-i
--inode

ファイル名の左側にそのファイルの inode 番号を表示する (inode 番号は、ファイル連続番号とか、インデックスナンバーとも呼ばれる。 この番号は、ある特定のファイルシステムにある各ファイルを、一意に指し示す)。

-l
--format=long
--format=verbose

各ファイルの名前のほかに、(訳注: 行頭から順に) ファイルのタイプ、ファイルのモードビット (訳注: 一般に「アクセス権」とか「許可属性」と言われるもの)、 ハードリンク数、所有者名、グループ名、サイズ、タイムスタンプを表示する (see section タイムスタンプのフォーマット)。 タイムスタンプは、通常は更新日時 (訳注: いわゆる mtime) である。 特定することのできない情報については、疑問符を表示する。

通常、サイズは、桁を区切る記号を付けずに、バイト数で表示されるが、 この表示法は変更することができる (see section ブロックサイズ)。たとえば、 ‘-h’ オプションを指定すると、人間に読みやすい短縮表示になり、 ‘--block-size="'1"’ を指定すると、現在のロケールの区切り記号で 3 桁ごとに区切ったバイト数が表示される。

ディレクトリの内容をリストする場合は、対象となるディレクトリごとに、ファイルのリストの前に ‘total blocks’ という行を置く。ここで、blocks は、 そのディレクトリにあるすべてのファイルに割り当てられたディスク容量の合計である。 現在のところブロックサイズはデフォルトでは 1024 バイトであるが、 この値は変更することができる (see section ブロックサイズ)。 blocks の計算では、各ハードリンクを別のものとして計算している。 これはバグだと言えないこともない。

ファイルタイプには、以下の文字の一つが使われる。

-

通常ファイル

b

ブロック・スペシャルファイル

c

キャラクタ・スペシャルファイル

C

ハイパフォーマンス (“contiguous data”) ファイル

d

ディレクトリ

D

ドア (Solaris 2.5 以上)

l

シンボリックリンク

M

オフライン (“migrated”) ファイル (Cray DMF)

n

ネットワーク・スペシャルファイル (HP-UX)

p

FIFO (名前付きパイプ)

P

ポート (Solaris 10 以上)

s

ソケット

?

上記以外のファイルタイプ

ファイルのモードビットの表示は、アクセス権を設定する際のシンボリックモードの仕様とほぼ同じである (see section シンボリックモード)。 ただし、ls は、以下のように、複数のモードビットを一つにまとめて、 アクセス権の各セットの 3 番目の文字で表現している。

s

set-user-ID ビットまたは set-group-ID ビットと、対応する実行ビットの両方が立っている場合。

S

set-user-ID ビットまたは set-group-ID ビットが立っているが、 対応する実行ビットは立っていない場合。

t

削除制限フラグまたはスティキー・ビット (sticky bit) と、 その他のユーザ (other) の実行ビットの両方が立っている場合。 削除制限フラグは、スティッキー・ビットの別名である。 See section ファイル・モードビットの構成.

T

削除制限フラグまたはスティキー・ビットが立っているが、 その他のユーザの実行ビットが立っていない場合。

x

実行ビットが立っていて、上記のどれにも当てはまらない場合。

-

それ以外。

ファイルのモードビットの後に続く 1 個の文字は、アクセス・コントロール・リスト (ACL) のような他のアクセス方式が、そのファイルに使われているかどうかを表している。 ファイルのモードビットに続く文字が空白の場合は、他のアクセス方式を使用していないということである。 表示文字が続く場合は、そうしたアクセス方式を使用しているということだ。

GNU の ls は、SELinux セキュリティ・コンテキストを持つが、 それ以外に他のアクセス方式を使用していないファイルを示すのに、 ピリオド (‘.’) を使う。

それ以外で、ファイルが、標準以外のアクセス方式の何らかの組み合わせを使用している場合には、 ‘+’ 文字が印として付く。

-n
--numeric-uid-gid

詳細形式でディレクトリの内容をリストするが、 所有者やグループの名前の代わりに、数字の user-ID や group-ID を表示する。

-o

詳細形式でディレクトリの内容をリストするが、グループ情報を表示しない。 これは、‘--format=long’ を ‘--no-group’ と併せて使うのと同じである。

-s
--size

各ファイルに対するディスク割り当て量をファイル名の左側に表示する。 これはファイルが使用しているディスクスペースの量であり、 普通はファイルのサイズより少し多いが、穴空きファイル (sparse file) の場合は、少ないこともある。

通常、ディスク割り当て量は 1024 バイトを単位として表示されるが、 これは変更することができる (see section ブロックサイズ)。

ファイルが HP-UX のシステムから BSD のシステムに NFS マウントされている場合、 このオプションで報告されるディスク使用量は、正確な値の半分である。 それに対して、HP-UX システムの場合は、BSD システムから NFS マウントされているファイルについて、このオプションは正確な値の 2 倍の量を報告する。 これは、HP-UX システムにある欠陥のせいであり、HP-UX の ls プログラムも、そのとばっちりを受けているのである。

--si

各サイズにの後ろに、メガバイトなら ‘M’ といった、SI 形式の略号を付ける。 1024 ではなく、1000 の累乗が使用されるので、‘M’ は 1,000,000 バイトを表している。このオプションは、‘--block-size=si’ と同じことである。1024 の累乗が使いたければ、‘-h’ や ‘--human-readable’ を使用すればよい。

-Z
--context

SELinux セキュリティ・コンテキストを表示する。ない場合は、‘?’ を表示する。‘-l’ オプションと一緒に使った場合は、 サイズの左にセキュリティ・コンテキストを出力する。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on June 7, 2022 using texi2html 1.82.