LS(1)

名称
ls - ディレクトリの内容のリストを表示する

書式
ls [-ABCFGHLPRTWZabcdfghiklmnopqrstuwx1] [file ...]

解説
ls は file で指定されたファイル名およびオプションの指定にしたがって、 ファイルに関する各種の情報を表示します。 なお、 file としてディレクトリが指定された場合は、そのディレクトリ配下のファイル に関する情報を表示します。

file が指定されなかった場合は、カレントディレクトリのファイルを表示します。 表示はファイル名のアルファベット順にソートされます。 ただし、 file としてディレクトリファイルとそれ以外のファイルを混在して指定した 場合は、ディレクトリ以外のファイルが先に表示され、その後 ディレクトリ配下のファイルが表示されます。

オプションとしては、以下のものがあります。

-A  ~. と.. を除く全てのエントリを表示します。 スーパユーザの場合は、通常このオプションがセットされています。

-B  ファイル名中の非印字可能文字 ( ctype(3) と現在のロケール設定で定義されます) を強制的に \xxx の形式で表示します。 xxx は文字の数値であり 8 進数です。

-C  マルチカラム形式で出力します。 端末への出力の場合は、これがデフォルトになります。

-F  それぞれのパス名の最後に、ディレクトリならばスラッシュ (‘/’) 、実行可能ファイルならばアスタリスク (‘*’) 、シンボリックリンクならばアットマーク (‘@’) 、ソケットファイルならば等号 (‘=’) 、ホワイトアウトならばパーセント文字 (‘%’) 、 FIFO ならば縦棒 (‘|’) をつけて表示します。

-G  カラー化出力を有効にします。 本オプションは、環境変数 CLICOLOR を定義することと同等です (後述)。

-H  コマンドラインのシンボリックリンクを追跡します。 -F, -d, -l オプションのいずれも指定されなかった場合、 このオプションが仮定されます。

-L  引数がシンボリックリンクファイルの場合、リンクファイル自体ではなく、 リンク先のファイルやディレクトリを表示します。 このオプションは -P オプションを打ち消します。

-P  引数がシンボリックリンクの場合、リンクが参照しているオブジェクトではなく リンク自身を表示します。 このオプションは -H, -L オプションを打ち消します。

-R  サブディレクトリを再帰的に表示します。

-T  -l オプション (小文字の “エル (L)”) と共に使用された場合、 ファイルの日付と時間に関する詳細情報 (月・日・時・分・秒・年) を表示します。

-W  ディレクトリ走査時にホワイトアウトも表示します。

-Z  各ファイルの MAC ラベルを表示します。 maclabel(7) を参照してください。

-a  ドット (~). で始まるファイルも含めて表示します。

-b  -B と同様ですが、可能であれば C のエスケープコードを使用します。

-c  ファイルソートや時刻出力の際、ファイルステータスの最終変更日付を使用します。

-d  引数がディレクトリの場合、ディレクトリそのものの情報について表示します (再帰的に表示しません)。

-f  ソートせずに表示します

-g  このオプションは、 4.3BSD との互換性のためにだけ利用すべきです。 これは、 ロングフォーマットオプション (-l) を使ってグループの名前を表示したい時に使います。

-h  -l オプションとともに使用した場合、次の単位サフィックスを使用します: バイト、キロバイト、メガバイト、ギガバイト、テラバイト、ペタバイト。 使用される大きさは基数 2 であり、数値の桁数が 4 以下になります。

-i  各ファイルについて、inode 番号を表示します。

-k  -s オプションとともに使用し、ファイルサイズを ブロック単位ではなく K バイト単位で表示します。 このオプションは環境変数 BLOCKSIZE に優先します。 -k と -h は排他であり、後に -k を置くと前の -h の効果を無効にします。

-l  ( “エル (L)” の小文字)。 ファイルの詳細情報をロングフォーマットで表示します (下記参照)。 端末に出力している場合、ロングフォーマットの前の行に、全ファイル のサイズの合計値を表示します。

-m  ストリーム出力形式。 ファイルを、コンマで区切って、ページの横方向に表示します。

-n  長い (-l) 出力において、 ユーザとグループを名前に変換せずに、 ユーザとグループの ID を数値で表示します。

-o  (-l) オプションによる詳細情報に、ファイルフラグも含めて表示します。

-p  ファイルがディレクトリの場合、各ファイル名の後にスラッシュ (‘/’) を書きます。

-q  ファイル名に表示できない文字が使われていたとき、 ‘’? として表示します。 端末に表示するときは、デフォルトでこの指定になります。

-r  辞書式順序で逆順または時刻の古い順にソートします。

-s  各ファイルがファイルシステム上で実際に占有している ブロック数 (512 バイト単位) を表示します。 ブロックの一部だけ占有しているものも整数値に切り上げられます。 端末に表示するときは、表示の先頭行に、全ファイルのサイズの合計値 を表示します。 環境変数 BLOCKSIZE は単位サイズ 512 バイトに優先します。

-t  ファイルをアルファベット順に表示する前に、ファイルの最終修正日時の順 (新しいものほど先にくる) にソートします。

-u  (-t) オプションや (-l) オプションで、ファイルの最終修正日時の代わりに、ファイルの最終アクセス日時を 使用します。

-w  非印字可能文字をそのまま表示するよう強制します。 出力先が端末でない場合、これがデフォルトです。

-x  -C と同じですが、下方向ではなく横方向にエントリをソートして、 マルチカラム出力します。

-1  (数字の “1” )。 1 行につき 1 エントリの形式で表示します。 端末への出力でない場合には、これがデフォルトです。

-1, -C, -x, -l オプションは、互いに他を上書きします。 最後に指定されたオプションが有効となります。

-c と -u オプションは、互いに他を上書きします。 最後に指定されたオプションが有効となります。

-B, -b, -w, -q オプションは互いに優先し合う関係にあります。 最後に指定されたものが印字不可文字の書式を決定します。

-H, -L, -P オプションは互いに優先し合う関係にあります(部分的もしくは全体的)。 指定された順序で適用されます。

デフォルトでは ls は標準出力に 1 行 1 エントリずつ表示します。 ただし、出力先が端末である場合および -C または -x のオプションが指定された場合は別です。

-i, -s, -l オプションが指定された場合、関連するファイルの情報は 1 個以上の空白 をあけて表示されます。

  ロングフォーマット
-l オプションがつけられた場合、それぞれのファイルに対して以下に示す情報が 表示されます: ファイルモード・ リンク数・所有者名・所有グループ名・ MAC ラベル・ ファイルのバイト数・月の短縮形・最終更新が行なわれた際の日付・時・分・ パス名。 さらに、各ディレクトリに対して、 ディレクトリ内のファイル情報が表示される直前に、 ファイルサイズの合計値が 512 バイトブロック単位で表示されます。

ファイルの修正時刻が 6 ヶ月以上過去もしくは未来の場合、 最終修正年が時間と分のフィールドに表示されます。

所有者または所有グループ名が不明の場合、 または -n オプション指定時には、 ID 番号で表示されます。

ファイルがキャラクタ型もしくはブロック型の特殊ファイルである場合、 ファイルサイズフィールドには ファイルのメジャー番号とマイナー番号が表示されます。 ファイルがシンボリックリンクファイルである場合、 リンク先ファイルのパス名が “->” によって表示されます。

-l オプションのもとで表示されるファイルモードは、エントリタイプと アクセス許可で成り立っています。 エントリタイプの文字はファイルのタイプを表しており、 各文字の意味は次のとおりです:

b   ブロック型特殊ファイル
c   キャラクタ型特殊ファイル
d   ディレクトリ
l   シンボリックリンクファイル
s   ソケットファイル
p   FIFO
-   通常ファイル

次の 3 つのフィールドは、それぞれ 3 つの文字からなっています: 所有者に対するアクセス許可・ グループに属するユーザに対するアクセス許可・ 他のユーザに対するアクセス許可。 これらのフィールドはそれぞれ 3 つの文字からなっています:

1.  もし r ならば読みだし可能。 もし - ならば読みだし不能。

2.  もし w ならば書き込み可能。 もし - ならば書き込み不能。

3.  その他の場合: 以下のうち最初に該当するものが用いられる。

    S   所有者に対するアクセス許可において、ファイルが実行可能ではなく、かつ、 実効ユーザ ID (set-user-ID) モードがセットされている場合。 所有グループに対するアクセス許可において、ファイルが実行可能ではなく、 かつ、実効グループ ID (set-group-ID) モードがセットされている場合。

    s   所有者に対するアクセス許可において、ファイルが実行可能で、かつ、 実効ユーザ ID モードがセットされている場合。 所有グループに対するアクセス許可の中で、ファイルが実行可能で、 かつ、実効グループ ID モードがセットされている場合。

    x   ファイルが実効可能またはディレクトリが検索可能である場合。

    -   ファイルは、読み出し、書き込み、実行のいずれも許可されておらず、 実効ユーザ ID も実効グループ ID もスティッキビットも設定されていない場合 (以下参照)。

    次の2つは他のユーザに対するアクセス許可の 3 番目の文字に使用されます。

    T   スティッキビットがセットされている (モード 1000) が、実行不能あるいは検索不能である場合 (chmod(1) または sticky(8) 参照)。

    t   スティッキビットがセットされており (モード 1000) 、かつ、検索可能または実行可能である場合 (chmod(1) または sticky(8) 参照)。

ファイルに ACL がある場合は次のフィールドは (‘+’) になり、無い場合は空白 (‘ ’) になります。 ls ユーティリティは、実際の ACL を表示しません。 getfacl(1) を使用してください。

使用例
ls の出力を大きさ順に並べる方法を示します ( ls がこの機能のために専用の別オプションを必要としない理由も示します)。

    ls -l | sort -n +4

さらに、 sort(1) への -r フラグを使用することにより、結果を大から小へ (逆順に) 並べられます。

診断

環境変数
以下の環境変数は ls の動作に影響を与えます:

BLOCKSIZE
    ブロック数の表示を行う際、1 ブロックのサイズとして環境変数 BLOCKSIZE で指定された値が使用されます ( -s オプション参照)。

CLICOLOR
    ANSI カラーシーケンスを使用し、ファイルタイプを区別します。 後述の LSCOLORS を参照してください。 -F で前述したもの加え、更なる属性 (setuid ビット設定等) もまた表示されます。 カラー化は、適切な termcap(5) ケーパビリティを持つ端末タイプに依存します。 デフォルトの “cons25” コンソールは、適切なケーパビリティを持っていますが、例えば xterm(1) でカラー表示したい場合には TERM 変数を “xterm-color” に設定する必要があります。 他の端末タイプも同様の修正が必要かもしれません。 出力が端末に向けられていない場合、カラー化は黙って無効化されます。 ただし、 CLICOLOR_FORCE 変数が定義されている場合は例外です。

CLICOLOR_FORCE
    出力が端末に向けられていない場合、通常、カラーシーケンスは無効化されます。 本フラグを設定することで、この動作を変更可能です。 TERM 変数は、カラー出力可能な端末を参照することが必要です。 そうなっていない場合、どのカラーシーケンスを使用すべきか決定できません。

COLUMNS
    ターミナルのカラム幅を指定します。 マルチカラム表示の際、 1 行あたりいくつのファイル名を表示できるかを算出するために参照されます ( -C および -x 参照)。

LANG
    長い -l フォーマット出力における、日と月の順序を決定するために使用するロケールです。 詳細は environ(7) を参照してください。

LSCOLORS
    本変数の値は、 CLICOLOR によってカラー出力が有効であるときに、 どの色をどの属性に使用するかを指定します。 この文字列は書式 fb の結合であり、ここで f は前景色であり、 b は背景色です。

    色の指示は次の通りです:

    a   黒
    b   赤
    c   緑
    d   茶
    e   青
    f   マゼンタ
    g   シアン
    h   明い灰
    A   太字の黒で、通常暗い灰に見えます
    B   太字の赤
    C   太字の緑
    D   太字の茶で、通常黄色に見えます
    E   太字の青
    F   太字のマゼンタ
    G   太字のシアン
    H   太字の明い灰で、明い白に見えます
    x   デフォルトの前景色と背景色

    以上が標準 ANSI カラーです。 実際の表示は、端末の色の扱いに依存して異なるでしょう。

    属性の順番は次の通りです:

    1.  ディレクトリ
    2.  シンボリックリンク
    3.  ソケット
    4.  パイプ
    5.  実行形式
    6.  ブロックスペシャル
    7.  キャラクタスペシャル
    8.  setuid ビットが設定された実行形式
    9.  setgid ビットが設定された実行形式
    10. 他者 (others) が書き込み可能なディレクトリであり、 スティッキビット付き。
    11. 他者 (others) が書き込み可能なディレクトリであり、 スティッキビット無し。

    デフォルトは "exfxcxdxbxegedabagacad" であり、 通常のディレクトリは前景色青でデフォルト背景色、 setuid 付き実行形式は前景色黒で背景色赤等です。

LS_COLWIDTHS
    この変数が設定されている場合、 コロン区切りのリストで各フィールドの最小幅を指定しているものとみなされます。 適切でなかったり不十分だったりする幅は無視されます (よって 0 を指定すると、フィールド幅が動的に決まります)。 すべてのフィールドの幅を変えられるわけではありません。 フィールドの順序は次の通りです: inode・ブロック数・リンク数・ユーザ名・グループ名・フラグ・ファイルサイズ・ ファイル名。

TERM
    CLICOLOR の機能は、端末タイプのカラーケーパビリティが必要です。

TZ  日時を表示するときに使われるタイムゾーンを指定します。 詳細は environ(7) を参照してください。

互換性
p1003.2 互換とするため、 ロングフォーマット形式の出力には所有グループ名フィールドが自動的に 含められます。

関連項目
chflags(1), chmod(1), getfacl(1), sort(1), xterm(1), termcap(5), maclabel(7), symlink(7), getfmac(8), sticky(8)

規格
ls ユーティリティは -g, -n, -o のオプション以外は、 p1003.1-2001 に適合しています。

ACL サポートは IEEE Std 1003.2c (“POSIX.2c”) Draft 17 (撤回されました) 互換です。

歴史
ls コマンドは AT&T UNIX から登場しました。

バグ
過去との互換性のために、多くのオプションの関係が複雑になっています。