Next: , Previous: Details about version sort, Up: ls invocation   [Contents][Index]


10.1.5 出力全体の形式

以下のオプションは出力全体の見かけに影響を及ぼす。

-1
--format=single-column

1 行 に 1 ファイルを表示する。標準出力が端末でないときの ls のデフォルトである。 ファイル名中に改行文字があっても、それをそのまま出力してしまわないようにするには、 -b-q オプションも参照していただきたい。 (訳注: -1 オプションを指定しても、標準出力が端末なら、改行文字を ‘?’ 記号で表示するか、ファイル名を ‘shell-escape’ スタイルでクォートするか、どちらかをやってくれる。)

-C
--format=vertical

ファイルのリストを多段組みで (訳注: すなわち、1 行に複数ファイルの形式で) 表示し、ソートは縦方向に行う。これは、標準出力が端末のときの ls のデフォルトである。dir コマンドにとっては、 これが常にデフォルトになる。GNU の ls は、 できるだけ少ない行数でできるだけ多くのファイルを表示するために、段の幅を可変にしている。

--color[=when]

ファイルのタイプを区別するためにカラー表示を使用するかどうかを指定する。 when は省略してもよく、以下の一つでもよい。

when を付けずに --color を指定するのは、"--color=always と同じことである。カラー表示にしたファイルのリストをパイプで moreless のようなページャに送ると、たいての場合、判読に苦しむ羽目になる。 ただし、more -f を使うと、うまく行くようだ。(訳注: 訳者の手元では、 ‘less -R’ や ‘lv -c’ で一応問題なくカラー表示ができているようだ。)

留意すべきは、--color オプションを使用すると、 大量のファイルがあるディレクトリで ls を実行したとき、 目に見えて動作速度が低下するかもしれないことである。 これは、カラー表示のデフォルトの設定では、ls は、 リストするファイルを一つづつ stat システムコールで調べる必要があるからだ。 とは言え、ファイルタイプのカラー表示はおおむね使用したいけれど、 他の色付けオプションは使わなくてもよいこともある (たとえば、実行属性、リンク切れ、スティッキー・ビット、その他のユーザの書き込み権限、 ケーパビリティなどは、色で表示しなくてもよい)。 その場合は、こんなふうに、dircolors コマンドを使用して、環境変数 LS_COLORS を設定すればよい。

eval $(dircolors -p | perl -pe \
  's/^((CAP|S[ET]|O[TR]|M|E)\w+).*/$1 00/' | dircolors -)

そうすれば、dirent.d_type が使えるファイルシステムなら、 ls は各コマンドライン引数に対してたった一回だけ stat システムコールを行うだけですむようになる。

-F
--classify
--indicator-style=classify

各ファイル名の後ろに、ファイルタイプを示す 1 文字を付ける。 通常ファイルの場合も、実行可能ファイルならば、‘*’ を後置する。 ファイルタイプの指標は、ディレクトリならば ‘/’、シンボリックリンクならば ‘@’、FIFO ならば ‘|’、ソケットならば ‘=’、ドアならば ‘>’ であり、通常ファイルを表す指標はない。 なお、--dereference-command-line (-H), --dereference (-L), --dereference-command-line-symlink-to-dir といったオプションが指定されていないかぎり、コマンドラインで指定されたシンボリックリンクをたどることはない。

--file-type
--indicator-style=file-type

各ファイル名の後ろに、ファイルタイプを示す 1 文字を付ける。 -F に似ているが、こちらは、実行ファイルに指標を付けない。

--indicator-style=word

ファイル名の後ろに指標文字を付けるとき、word というスタイルを使用する。 word には次のものがある。

none

指標文字を全く付けない。これがデフォルトである。

slash

ディレクトリの後ろに ‘/’ を付ける。これは、-p オプションと同じである。

file-type

ディレクトリ、シンボリックリンク、FIFO、ソケットの後ろに、 それぞれ ‘/’, ‘@’, ‘|’, ‘=’ を付け、 通常ファイルの後ろには何も付けない。これは、--file-type オプションと同じである。

classify

実行可能な通常ファイルの後ろに ‘*’ を付ける。それ以外は、 ‘file-type’ の場合と同じ動作をする。これは、-F--classify オプションと同じである。

-k
--kibibytes

デフォルトのブロックサイズを標準の値の 1024 バイトに設定する。 そのとき、環境変数でそれ以外のどんな値が設定されていても、 それを上書きする (see Block size)。このオプション自身も、 --block-size, --human-readable (-h), --si オプションが現れれば、それによって上書きされる。

--kibibytes (-k) オプションが影響を及ぼすのは、-l などのオプションが書き出すディレクトリごとのブロック数や、--size (-s) オプションが表示するディスク割り当て量に対してである。 -l の表示するファイルサイズには影響を及ぼさない。

-m
--format=commas

ファイルを横に並べ、各行に収まる範囲でできるだけ多くの項目を表示する。 ファイル同士は ‘, ’ (コンマとスペース) で区切る。

-p
--indicator-style=slash

ディレクトリ名の後ろに ‘/’ を付ける。

-x
--format=across
--format=horizontal

ファイルのリストを多段組みで (訳注: すなわち、1 行に複数ファイルの形式で) 表示し、ソートは横方向に行う。

-T cols
--tabsize=cols

タブ位置が cols 桁ごとにあると想定する。デフォルトは 8 桁ごと。 ls は効率を考慮し、使えるときはタブを出力で使用する。 cols が 0 の場合は、タブを使用しない。

端末エミュレータの中には、ASCII 以外のバイトが前にあると、 列をタブ位置の右にきちんと揃えてくれないものがあるかもしれない。 この問題を回避するには、-T0 オプションを使うか、環境変数 TABSIZE=0 を設定するかして、列を揃えるのにタブではなく、 スペースを使うよう、ls に指示すればよい。

-w cols
--width=cols

スクリーンの横幅が cols 桁だと想定する。デフォルトの値は、 可能ならば端末の設定から取得する。取得できないときは、環境変数 COLUMNS が設定されていれば、それを使用する。 それも設定されていないときのデフォルトの値は 80 である。 cols の値を ‘0’ にすると、出力行の長さに制限がなくなる。 その場合、ただ一行の出力中で各項目を分離するのは、タブではなく、スペースになる。


Next: , Previous: Details about version sort, Up: ls invocation   [Contents][Index]