名称
ls, lc, l, ll, lsf, lsr, lsx ― ディレクトリの内容のリスト
構文
ls [-abcdefgilmnopqrstuxACFLR1]
[names]
lc [-abcdefgilmnopqrstuxACFLR1]
[names]
l [ls_options] [names]
ll [ls_options] [names]
lsf [ls_options] [names]
lsr [ls_options] [names]
lsx [ls_options] [names]
説明
ls コマンドは、引き数として指定された各ディレクトリについて、
ディレクトリの内容をリストします。 また、引き数がファイルの場合には、 ls はその名称と要求された情報を出力します。 ls デフォルトの場合、出力は名前によって昇順にソートされます
(下記の環境変数の項を参照してください)。 引き数を指定しなければ、現在のディレクトリがリストされます。
また、複数の引き数を指定すると、まず各引き数が必要な順序に並べ換えられます。
ただし、ファイルは、ディレクトリやその内容より先に処理されます。
必要とされる特権を持つユーザーに対しては、デフォルトで . と .. を除くすべてのファイルがリストされます。
主に 3 つのリスト形式があります。 使用される形式は、出力をログインデバイスに送るかどうかによって
異なります (これは、出力デバイスファイルが tty デバイスであるかどうかで決まります)。
また、リスト形式は各種オプションフラグによって制御することができます。
ログインデバイス用のデフォルト形式では、カラムごとに縦方向に各エントリーを
ソートして、マルチカラムの形式でディレクトリの内容をリストします。 (引き数のリストにディレクトリ名ではなく個々のファイル名を指定した場合は、
各ファイル名は、必ずページの横方向にソートして表示されます。 これは、縦方向にソートすると、長すぎて表示しきれない場合があるためです)。
標準出力がログインデバイスでない場合は、 1 行につき 1 エントリーの形式でリストされるのがデフォルトの形式です。 -C および -x の各オプションにより、マルチカラム形式の出力が使用可能になり、また -m オプションにより、ストリーム形式の出力
(各ファイルをコンマで区切って、ページの横方向にリストする形式) が使用可能になります。 ls は、 -C, -x,
および -m の各オプションの出力形式を決める場合に、環境変数 COLUMNS, を使用して、各出力行に表示する桁数を決定します。
この変数を設定していない場合は、 terminfo データベースを使用して、環境変数 TERM に対応する表示の桁数を決定します。
この情報が得られない場合は、80 カラムを使用します。
lc コマンドは、 ls と同じ機能を持ちますが、デフォルトでは
(リダイレクトした場合も) カラム形式でファイルの内容が出力されます。
オプション
ls は、次のオプションを認識します。
| -a | | すべてのエントリーをリストします。通常は、名称がピリオド
(.) で始まるファイルはリストされません。 |
| -b | | 表示できない文字を \ddd の形式の 8 進数で表示します。 |
| -c | | ソート (-t) または表示 (-l (英字
L の小文字)) の出力について、 i ノードを最後に変更 (ファイルの作成、ノードの変更など)
した時刻を使用します。 |
| -d | | 引き数がディレクトリであれば、ディレクトリ名だけをリストします
(その内容はリストされません)。 -l (英字 L の小文字)
オプションと併用して、ディレクトリの状態を確認することができます。 |
| -e | | ファイルのエクステント属性を表示します。 エクステント属性を持つファイルに対して、
エクステントサイズ、リザーブされたスペース、 および割り当てフラグが表示されます。 -l (英字
L の小文字) オプションと併用しなければなりません。 |
| -f | | 引き数をすべてディレクトリとみなし、各引き数の下にある名称をリストします。
このオプションは、 -l (英字 L の小文字), -r, -s,
および -t の各オプションを使用不能にし、 -a オプションを使用可能にします。
各エントリーは、ディレクトリ内での順序で出力されます。 |
| -g | | グループ名だけが表示される点を除き、 -l (英字
L の小文字) と同じです (所有者は省略されます)。 -l (英字
L の小文字) と -g の両方を指定すると、所有者は表示されません。 |
| -i | | 各ファイルについて、最初のカラムに i ノード番号を表示します。
また、マルチカラム出力についてこのオプションを使用すると、 各カラムでファイル名の前に
i ノード番号が付きます。 |
| -l | | (英字 L の小文字) 各ファイルのモード、リンク数、所有者、グループ名、
サイズ (バイト数)、および最終変更時刻を長い形式でリストします (以降の「説明」
および「アクセス制御」リストを参照)。 ファイルの最終変更時刻から 6 か月が経過した場合、または未来
(現在点より先) の 時刻になっている場合は、変更の時刻と分の表示に代わって、年数が示されます。
ファイルがスペシャルファイルの場合、サイズのフィールドには、ファイルの
バイト数ではなくメジャーデバイス番号とマイナーデバイス番号が表示されます。
ファイルがシンボリックリンクされている場合、ファイル名とともに、 -> の後にパス名と参照されたファイルが表示されます。 |
| -m | | ストリーム形式の出力を指定します。 |
| -n | | 所有者名とグループ名の代わりに、所有者の UID とグループの
GID を表示する点を除き、 -l (英字 L の小文字)
と同じです。 |
| -o | | 所有者だけを表示する点を除き、 -l (英字
L の小文字) と同じです (グループは省略されます)。 -l (英字
L の小文字) と -o の両方を指定すると、グループは表示されません。 |
| -p | | ファイルがディレクトリであれば、各ファイルの後にスラッシュ
(/) を付けます。 |
| -q | | ファイル名の中にある表示できない文字を強制的に (?)
に置き換えて表示します。 |
| -r | | 必要に応じてソート順を反転させ、名前によって降順、あるいはファイルの古い順から出力します。 |
| -s | | 各エントリーについて、サイズをブロック単位 (間接ブロックも含む)
で出力します。 最初のエントリーとして、そのディレクトリの総ブロック数が表示されます。
このオプションをマルチカラム出力について使用すると、各カラムで、
ファイル名の前にブロック数が表示されます。 ファイル内の間接ブロック数はファイルシステムに依存します。 |
| -t | | ファイル名のアルファベット順によるソートの前に、ファイルの変更時刻順
(新しい順) でソートします。 |
| -u | | ソート (-t オプション)、または表示
(-l (英字 L の小文字) オプション) の出力について、
ファイルの最終変更時刻ではなく、最終アクセス時刻を使用します。 |
| -x | | ソート済みの各エントリーを横方向にリストしたマルチカラム形式で出力します。 |
| -A | | 現在のディレクトリ . と 1 つ上のディレクトリ .. をリストしない点を除き、 -a と同じです。適切な特権を持っているユーザーの場合、このフラグはデフォルトで
ON になっており、 -A によって OFF になります。 |
| -C | | ソート済みの各エントリーを縦方向にリストしたマルチカラム形式で出力します。 |
| -F | | 各ファイル名の後に以下の記号を付けます。 ファイルがディレクトリの場合、またはディレクトリへのシンボリックリンクの
場合には、スラッシュ (/) を付けます。 実行可能なファイルであれば、アスタリスク (*)
を付けます。 ファイルが、ファイルに対するシンボリックリンクであれば、単価記号
(@) を付けます。 ファイルが fifo の場合には、縦線 (|)
を付けます。
|
| -L | | 全てのシンボリックリンク (コマンドライン上で名付けられたものまたは、ファイル階層構造中に検出されたもの)
に対するファイル情報とファイルタイプをファイル自体ではなく、リンクの参照先のファイルとして評価されます。しかし、 ls はリンクの参照先ファイルではなく、リンク自体の名前を書き出します。 -L と -l が一緒に使用される場合、長いフォーマットでシンボリックリンクの内容を書き出します。 |
| -R | | サブディレクトリを再帰的にリストします。 |
| -1 | | (数字の 1) 出力デバイスにかかわらず、ファイル名をシングルカラム形式でリスト
します。このオプションは、強制的に単一カラム形式でファイル名をリストします。 |
次のような相互に排他的な複数のオプションのペアを同時に指定しても
エラーにはなりません。 -C と -l (英字
L の小文字)、 -m と -l (英字
L の小文字)、 -x と -l (英字
L の小文字)、 -C と -1 (数字の 1)、 -c と -u。
ls には、次のような指定形式に対応する省略形式のコマンド名も用意されています。
| l | | は ls -m と等価です。 |
| ll | | は ls -l (英字
L の小文字) と等価です。 |
| lsf | | は ls -F と等価です。 |
| lsr | | は ls -R と等価です。 |
| lsx | | は ls -x と等価です。 |
以上の省略形式は、 ls へのリンクとしてインプリメントされています。
省略形式に対するオプションの引き数は、 省略しないコマンドにオプション引き数を追加した場合と同様に機能します。
モードビットの意味
(-l option)
-l (英字 L の小文字) オプションが出力するリストでは、
モードを計 10 文字で表します。 例 -rwxr-xr-x
最初の文字は、エントリーの種類を表します。
| b | | ブロック スペシャルファイル |
| c | | キャラクタ スペシャルファイル |
| d | | ディレクトリ |
| l | | シンボリックリンク |
| n | | ネットワーク スペシャルファイル |
| p | | fifo (「名前付きパイプ」) スペシャルファイル |
| s | | ソケット |
| - | | 通常のファイル |
以降の 9 文字は、3 文字ごとの 3 つのセットとして解釈され、それぞれ所有者、
グループ、およびその他のカテゴリが持つ、アクセス実行パーミッションを表します。 chmod(1) で説明しています。 - はパーミッションが許可されていないことを表しています。 種々のパーミッションをどんな組み合わせにもまとめて使用できます。 x, s, S, t と T の文字が相互に排他的である場合を除きます。意味は次のとおりです。
| -r-------- | | 所有者による読み取り |
| --w------- | | 所有者による書き込み |
| ---x------ | | 所有者による実行 (ディレクトリ検索)。ユーザー ID を実行時に設定しません。 |
| ---s------ | | 所有者による実行/検索。ユーザー ID を実行時に設定します。 |
| ---S------ | | 所有者による非実行/非検索。ユーザー ID を実行時に設定します。 |
| ----r----- | | グループによる読み取り |
| -----w---- | | グループによる書き込み |
| ------x--- | | グループによる実行/検索。グループ ID を実行時に設定しません。 |
| ------s--- | | グループによる実行/検索。グループ ID を実行時に設定します。 |
| ------S--- | | グループによる非実行/非検索。グループ ID を実行時に設定します。 |
| -------r-- | | その他のユーザーによる読み取り |
| --------w- | | その他のユーザーによる書き込み |
| ---------x | | その他のユーザーによる実行/検索。スティッキービットを実行時に設定しません。 |
| ---------t | | その他のユーザーによる実行/検索。スティッキービットを実行時に設定します。 |
| ---------T | | その他のユーザーによる非実行/非検索。スティッキービットを実行時に設定します。 |
文字モードの意味は次のとおりです。
| - | | 対応するパーミッションが与えられていません。 |
| r | | 対応するユーザークラスに読み取りパーミッションが与えられています。 |
| w | | 対応するユーザークラスに書き込みパーミッションが与えられています。 |
| x | | 対応するユーザークラスに実行 (またはディレクトリ検索) パーミッションが与えられています。 |
| s | | 対応するユーザークラスに実行 (検索) パーミッションが与えられています。設定されている所有者 (セットユーザー ID(SUID))、またはグループ (セットグループ ID(SGID)) によってファイルが実行されます。 |
| S | | 対応するユーザークラスに実行 (検索) パーミッションが与えられていません。設定されている所有者 (セットユーザー ID(SUID))、またはグループ (セットグループ ID(SGID)) によってファイルが実行されます。 |
| t | | その他のユーザーに実行 (検索) パーミッションが与えられています。
「スティッキー」(テキストイメージを保存) ビットが設定されています。( chmod(2)) の S_ISVTX の説明を参照してください。) |
| T | | その他のユーザーに実行 (検索) パーミッションが与えられていません。
「スティッキー」(テキストイメージを保存) ビットが設定されています。 |
ディレクトリやファイルのサイズをバイトやブロック単位で表示するオプション
( -s または -l (英字 L の小文字))
を指定した場合、 リストの先頭にブロック全体の値 (間接ブロックも含む)
が表示されます。
アクセス制御リスト
(ACL)
ファイルにオプションの ACL エントリーがある場合には、 -l (英字
L の小文字) オプションの指定によって、 ファイルのパーミッションの後に正符号
(+) が表示されます。表示されるパーミッションは、 stat() が st_mode フィールドに返すファイルのアクセス制御リストを要約したものです stat(2) 参照)。アクセス制御リストの内容をリストするには、 lsacl コマンドを使用してください lsacl(1) および acl(5) 参照)。
多言語化対応
環境変数
COLUMNS 変数が設定されていれば、 ls は、指定された幅に基づいてカラム出力の位置を決定します。
LC_ALL および対応する環境変数 (先頭が LC_ で始まる) がロケール変数を指定しない場合、 LANG がロケールカテゴリで使われるロケール変数を決定します。 LANG が設定されていないかヌルに設定されている場合、 C がデフォルトとして使われます ( lang(5) を参照)。
LC_COLLATE は出力のソート順序を決定します。
LC_CTYPE は、 -b および -q オプションに対して、どの文字を表示できないとみなすかを決定します。
また、ファイル名をシングルバイトまたはマルチバイトのいずれの文字として
解釈するかを決定します。
LC_TIME は、 -g, -l (英字
L の小文字), -n, および -o オプションが出力する日付および時刻文字列を決定します。
LC_MESSAGES は、日付および時刻文字列以外のメッセージの表示に使用する言語を決定します。
インターナショナル変数のいずれかの設定が不適当な場合には、 ls はすべてのインターナショナル変数が C に設定されているものとして動作します。 environ(5) 参照)。
サポートされるコードセット
シングル/マルチバイトの文字コードがサポートされています。
戻り値
ls は、次のいずれかの値で終了します。
| 0 | | 入力ファイルがすべて正しくリストされました。 |
| >0 | | ファイルへのアクセス時にエラーが生じたので、 ls の実行が中止されました。エラーの原因は、次のとおりです。 ユーザーがディレクトリの読み取りパーミッションを持っていない。
|
例
現在のワークディレクトリにあるすべてのファイルについて、 ファイルサイズも含む長い形式でリストを出力します。
最後に変更した最新のファイルから新しい順に各ファイルをリストします。 . で始まる名称のファイルも表示します。
警告
ログイン tty) デバイスの出力結果に基づいてオプションを決定すると、
思わぬ結果をまねくことがあります。これは、 ls -s と、 ls -s | lp によって示されます。一方、これまで ls を使用していた古いシェルスクリプトについて、この設定を使用せずに実行すると、
必ず異常終了します。
ファイル名の中に表示できない文字があると、カラム出力に混乱が生ずることがあります。
( -b と -q オプションを除く)
制約
NFS
ネットワークファイルについては、 -l (英字
L の小文字) オプションを指定しても、アクセス パーミッションビットの
後に、オプションのアクセス制御リストの存在を示す正符号 (+)
は表示されません。
著者
ls は、AT&T、カリフォルニア大学バークレイ校、および
HP によって開発されました。
ファイル
| | /etc/group -l および -g のグループ ID 用 |
| /etc/passwd | | -l および -o のユーザー ID 用 |
| /usr/share/lib/terminfo/?/* |
| | | ターミナル情報用 |
参照
chmod(1), find(1), lsacl(1), stat(2), acl(5)
標準準拠
ls: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2