LS(1L)

名前
ls, dir, vdir - ディレクトリの中身をリスト表示する。

書式
ls [-abcdefgiklmnopqrstuxABCFGLNQRSUX178] [-w cols] [-T cols] [-I pattern] [--all] [--escape] [--directory] [--inode] [--kilobytes] [--numeric-uid-gid] [--no-group] [--hide-control-chars] [--reverse] [--size] [--width=cols] [--tabsize=cols] [--almost-all] [--ignore-backups] [--classify] [--file-type] [--full-time] [--ignore=pattern] [--dereference] [--literal] [--quote-name] [--recursive] [--sort={none,time,size,extension}] [--format={long,verbose,commas,across,vertical,single-column}] [--time={atime,access,use,ctime,status}] [--color[={yes,no,tty}]] [--colour[={yes,no,tty}]] [--7bit] [--8bit] [--help] [--version] [name...]

説明
このマニュアルページは GNU バージョンの ls (色付き)について書いている。 dir と vdir はデフォルトの出力書式の異なるバージョンの ls である。これらのプログラムは与えられたファイル名、ディレクトリ名をリスト表示 する。ディレクトリの中身はアルファベット順にソートされている。 ls は標準出力が端末ならば、デフォルトでファイルを垂直方向にソートし、列で リスト表示する。(標準出力が端末でなければ、１行ごとにリスト表示する。) dir はデフォルトではファイルを垂直方向にソートし、列でリスト表示する。 vdir はデフォルトではファイルを長い表示形式でリスト表示する。

  オプション

-a, --all ではじまる全てのファイルを含む、ディレクトリ内の
    「全てのファイルをリスト表示する。

-b, --escape
    ファイル名にアルファベットやオクタルのバックスラッシュシーケンス を使っている(c で使われている様に)非表示文字を引用する。

-c, --time=ctime, --time=status
    ファイルを変更した時間のかわりにファイルのステータスを変更した時間で ディレクトリの内容をソートする。長いリスト形式が使われるときは、 ファイルを変更した時間のかわりにファイルのステータスを変更した 時間を表示する。

-d, --directory
    ディレクトリを、その中身を表示するのでなく、他のファイルと同じように リスト表示する。

-e, --full-time
    時間に関する全ての情報を(省略形でなく)リスト表示する。

-f  ディレクトリの中身をソートしない。(ディスクにある順にリスト表示する。) -a と -U を有効にして、 -l, -o, -s, -t. を無効にした場合と同じ。

-g  このオプションは無視される。(Unixとの互換性のためにある)

-i, --inode
    ファイルのインデックス番号をファイル名の左に表示する。

-k, --kilobytes
    ファイルサイズをリスト表示するとき、キロバイト単位で表示する。 このオプションは環境変数 POSIXLY_CORRECT より優先する。

-l, --format=long, --format=verbose
    ファイル名に加えて、ファイルタイプ、パーミッション、ハードリンクの数、 オーナー名、グループ名、バイトサイズ、タイムスタンプ(他の時間を指定 しなければ、ファイルが変更された時間)を表示する。ファイルのタイム スタンプが６カ月以上前または１時間以上先な場合、 タイムスタンプは日付と時刻のかわりに日付と年を表示する。

-m, --format=commas
    ファイルをそれぞれの行にできるだけ多く詰め込み、コンマで区切って 横にリスト表示する。

-n, --numeric-uid-gid
    UID と GID を名前のかわりに数字でリスト表示する。

-o, --color, --colour, --color=yes, --colour=yes
    ファイルタイプによってファイル名を色付で表示する。 詳細はこの後の 'DISPLAY COLORIZATION' を参照のこと。 --color からは連想できない -o がトグルであることに注意。

-p  ファイルタイプを示す文字をファイル名に加える。

-q, --hide-control-chars
    ファイル名中の非表示文字のかわりにクエスチョンマークを使う。

-r, --reverse
    ディレクトリの中身を逆順にソートする。

-s, --size
    ファイル名の左に1kブロック単位でファイルサイズを表示する。環境変数 POSIXLY_CORRECT がセットされていればかわりに512バイトブロック単位が使われる。

-t, --sort=time
    ディレクトリの中身をアルファベット順でなく、タイムスタンプで ソートする。最も新しいファイルが最初にくる。

-u, --time=atime, --time=access, --time=use
    ディレクトリの中身をファイルが変更された時間のかわりに 最後にファイルにアクセスした時間でソートする。 長いリスト形式が使われるときは、ファイルを変更した時間のかわりに 最後にファイルにアクセスした時間を表示する。

-x, --format=across, --format=horizontal
    水平方向にソートして列方向にファイルをリスト表示する。

-A, --almost-all

-B, --ignore-backups
    コマンドラインで指定した場合を除いて、'~' が最後につく ファイルをリスト表示しない。

-C, --format=vertical
    垂直方向にソートして列方向にファイルをリスト表示する。

-F, --classify
    ファイル名にファイルタイプを示す文字を付ける。 実行可能ファイルでは '*' を付ける。ファイルタイプを示す文字 として、'/' はディレクトリを '@' はシンボリック リンクを '|' は FIFO を '=' はソケットを表す。普通のファイル にはなにも付けない。

-G, --no-group
    長いディレクトリリスト表示でグループ情報を表示しない。

-L, --dereference
    シンボリックリンクの中身をリスト表示するかわりに、リンクされた ファイルをリスト表示する。

-N, --literal
    ファイル名を引用しない。

-Q, --quote-name
    ファイル名をダブルクォーテーションで囲い、C言語でつかわれるような 非表示文字を引用する。

-R, --recursive
    すべてのディレクトリの中身を再帰的にリスト表示する。

-S, --sort=size
    ディレクトリの中身をアルファベット順でなくファイルサイズ順にソートする。 最も大きなサイズのファイルが最初にくる。

-U, --sort=none
    ディレクトリの中身をソートしない。(ディスクにある順にリスト表示する。) このオプションは -f とは異なっている。 なぜなら Unix ls の -f オプションは(-Uに加えて) -a も有効にし、 -l, -s, -t. を無効にするからである。 これらの無関係なものを１つのオプションにまとめるのは使いにくく 美しくないと考える。そんなわけで違う名前を付けたのである。

-X, --sort=extension
    ディレクトリの中身をファイルの拡張子(最後の '.' のあとの文字)の アルファベット順でソートする。拡張子のないファイルが前にくる。

-1, --format=single-column
    １行あたり１ファイルづつリスト表示する。

-7, --7bit
    表示できない制御文字などの ASCII(ISO 646) 文字セット(0x20-0x7E) 以外 のすべての文字を扱う。

-8, --8bit
    表示できる 8ビットISO 8859文字セット(0x20-0x7E,0xA1-0xFF) の すべての文字を扱う。これにはサブセットとして ASCII が含まれる。 コンパイル時に無効にした場合をのぞいて、この設定はデフォルトである。

-w, --width cols
    端末の幅が cols 列であるとして表示する。デフォルトでは可能ならばターミナルドライバ で設定する。さもなければ、環境変数 COLUMNS が使われる。それもなければ、デフォルトでは80列である。

-T, --tabsize cols
    タブ幅を cols 列として表示する。デフォルトでは8、もしくは環境変数 TABSIZE の値を使う。タブ幅を0にセットするとまったくタブ文字を使わない。

-I, --ignore pattern
    ファイル名がコマンドラインから与えられたばあいをのぞいて シェルの pattern にマッチするファイルをリスト表示しない。 シェルでは、先頭が '.' のファイル名は pattern の先頭のワイルドカードにマッチしない。

--color=tty, --colour=tty
    -o と同じだが標準出力が端末の場合のみ有効。このオプションは シェルスクリプトやコマンドのエリアスにとても便利に使える。 あなたの好きなページャーが色の制御コードをサポートしていない 場合は特に有効である。

--color=no, --colour=no
    色をつけない。これがデフォルトである。既存のカラーオプションを無効に するためにある。

--help
    標準出力に使い方を表示する。

--version
    標準出力にバージョン情報を表示する。

  DISPLAY COLORIZATION
-o または --color オプションを使った時このバージョンの ls はファイル名やファイルタイプによってファイル名を色つきで表示する。 デフォルトではこの色の付け方はファイルタイプのみに依っていて 使うコードの仕様は ISO 6429 (ANSI) である。

環境変数 LS_COLORS (または LS_COLOURS) を指定することでデフォルトの色を無効にできる。この変数の書式 は termcap(5) に似ている。この書式は書式 "xx=string" を拡張した コロンで区切られたリストで "xx" は２文字の変数名である。 環境変数のデフォルトは：

    no	0	Normal (non-filename) text
    fi	0	普通のファイル
    di	32	ディレクトリ
    ln	36	シンボリックリンク
    pi	31	名前付きパイプ (FIFO)
    so	33	ソケット
    bd	44;37	ブロックデバイス
    cd	44;37	キャラクタデバイス
    ex	35	実行可能ファイル
    mi	(none)	Missing file (defaults to fi)
    or	(none)	Orphanned symbolic link (defaults to ln)
    lc	\e[	左コード
    rc	m	右コード
    ec	(none)	終了コード (lc+no+rc の代わり)

デフォルトから設定を変えたい変数のみ設定すればよい。

またファイル名はファイルの拡張子をもとに色つけすることもできる。 これは LS_COLORS 変数に "*ext=string" という書式で指定する。 例えば ISO 6429 コードを使っている時 "*.c=34" を指定すると すべてのC言語ソースファイルを青色にする。 これは .c でおわるすべてのファイルを青(34)にするということである。

制御文字はC言語のような \ (エスケープ)表記または stty のような ^ 表記のいずれかで書ける。C言語の表記法に加えてエスケープ として \e を、空白文字として \_ を、削除コードとして \? を使える。 さらに \ エスケープ文字は \, ^, :, =, のデフォルトの解釈を 無効にするのに使う。

それぞれのファイルは <lc> <color code> <rc> <filename> <ec> と書く。 <ec> コードが指定されていなければかわりに <lc> <no> <rc> シーケンス が使われる。これは普通のやりかたより使いやすいが、一般的ではない。 右、左、終了のコードが繰り返し部分を何度もタイプしなくてよいように、また 端末をサポートをするために、そなえられている。端末が ISO 6429 カラー シーケンスを使っていないシステムの場合を除いて普通これらを変更 する必要はない。

端末が ISO 6429 カラーコードを使っているときセミコロンで 区切った数字コマンドでタイプコード(つまりlc, rc, ec lc, rc, ec コード以外のすべて)を作れる。共通のコマンドの大部分は以下のとおり。

     0	デフォルトの色に戻す
     1	for brighter colors
     4	アンダーラインを引く
     5	点滅させる
    30	黒の文字にする
    31	赤の文字にする
    32	緑の文字にする
    33	黄色(または茶色)の文字にする
    34	青の文字にする
    35	紫の文字にする
    36	シアンの文字にする
    37	白(または灰色)の文字にする
    40	黒の背景にする
    41	赤の背景にする
    42	緑の背景にする
    43	黄色(または茶色)の背景にする
    44	青の背景にする
    45	紫の背景にする
    46	シアンの背景にする
    47	白(または灰色)の背景にする

すべてのコマンドがすべてのシステムや表示装置で有効なわけではない。

ターミナルプログラムでデフォルトの終了コードを適切に処理しない ものもある。ディレクトリのリスト処理を行なったあとリストの すべてに色がつくようなら指定した標準の文字色や背景色にするために no や fi コードを0から数字コードにかえてみること。

バグ
BSDシステムでは、 -s オプションを使うとHP-UXシステムからNFSマウントされたファイルは正確 なサイズの半分の値を表示する。HP-UXシステムではBSDシステムからNFSマウント された正確なサイズの倍の値を表示する。これはHP-UXの欠点による。 これはHP-UXの ls プログラムにも影響を及ぼしている。

文字セットの選定はよりシステム独立であるべきである。

タブとカラーコードの組合せを嫌うシステムがあるようなので色づけが 指定された場合は -T オプションがない限りカラムスペーシングのためのタブ文字は使えない。

英語にただ一つしか標準が存在しなかったら、余分なスペルを サポートする必要はないのに。