EN JA
LS(1)
LS(1) FreeBSD General Commands Manual LS(1)

名称

lsディレクトリの内容をリストする

書式

ls [ -ABCFGHILPRSTUWZabcdfghiklmnopqrstuwxy1,][ -D format][ file ...]

解説

ディレクトリ以外のタイプの file を指定する各オペランドに関して、 ls は、要求された名前だけでなく、関連する情報を表示します。ディレクトリタイプの file を指定する各オペランドに関して、 ls は、要求されたディレクトリ内に含まれているファイルの名前だけでなく、関連する情報を表示します。

オペランドが与えられないなら、カレントディレクトリの内容が表示されます。 2 つ以上のオペランドが与えられるなら、ディレクトリでないオペランドが最初に表示されます。ディレクトリとディレクトリでないオペランドは、辞書編集順に別々にソートされます。

次のオプションが利用可能です:

-A
... を除いて、名前がドット (‘ .’) で始まるディレクトリエントリを含めます。 -I が指定されないなら、スーパユーザに対して自動的に設定します。
-B
\ xxx としてファイル名中の ( ctype(3) と現在のロケール設定によって定義されるように) 非印刷可能文字の印刷 (表示) を強制します、ここで xxx は、8 進数の文字の数値です。
-C
複数のカラムの出力を強制します。これは、出力が端末であるときのデフォルトです。
-D format
ロング ( -l) 形式で印刷するときに、日付と時間の出力で format を使用します。引数 format は、 strftime(3) によって使用される文字列です。 format 文字列の選択によって、これは、出力で異なった数のカラムの結果となるかもしれません。このオプションは、 -T オプションを上書きします。
-F
それぞれのパス名の最後に、ディレクトリならばスラッシュ (‘ /’)、実行可能ファイルならばアスタリスク (‘ *’)、シンボリックリンクならばアットマーク (‘ @’)、ソケットファイルならば等号 (‘ =’)、ホワイトアウトならばパーセント文字 (‘ %’)、 FIFO ならば縦棒 (‘ |’) をつけて表示します。
-G
カラー化の出力を有効にします。このオプションは、環境変数の CLICOLOR を定義することと同等です。 (後述)。 COLORLS の定義を削除することによって、この機能をコンパイルすることができます。
-H
コマンド行のシンボリックリンクをたどります。 -F, -d または -l オプションのいずれも指定されないなら、このオプションが仮定されます。
-I
スーパユーザに対して自動的に設定される -A を抑制します。
-L
引数がシンボリックリンクであるなら、リンク自体ではなく、リンクが参照するファイルまたはディレクトリをリストします。このオプションは、 -P オプションを取り消します。
-P
引数がシンボリックリンクであるなら、リンクが参照するオブジェクトではなくリンク自体をリストします。このオプションは、 -H-L オプションを取り消します。
-R
遭遇するサブディレクトリを再帰的にリストします。
-S
辞書編集順でオペランドをソートする前に、(最も大きなファイルを最初に) サイズでソートします。
-T
ロング ( -l) 形式で印刷 (表示) するときに、月・日・時・分・秒・年を含めて、ファイルのための完全な時間情報を表示します。 -D オプションは、出力形式のさらなる制御を与えます。
-U
ソートや印刷 (表示) の際にファイルが作成された時間を使用します。
-W
ディレクトリ走査時にホワイトアウトも表示します。
-Z
各ファイルの MAC ラベルを表示します。 maclabel(7) を参照してください。
-a
ドット (‘ .’) で始まるファイルも含めて表示します。
-b
-B と同様ですが、可能であれば C のエスケープコードを使用します。
-c
ファイルソートや時刻出力の際、ファイルステータスの最終変更日付を使用します。
-d
引数がディレクトリの場合、ディレクトリそのものの情報について表示します (再帰的に表示しません)。
-f
ソートせずに表示します
-g
このオプションは、 4.3BSD との互換性のためにだけ利用すべきです。これは、ロング形式オプション ( -l) を使ってグループの名前を表示したい時に使います。
-h
-l オプションとともに使用するとき、次の単位サフィックスを使用します: サイズに対して 2 のべき乗を使用して 4 以下に桁数を縮小する順序で (Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte) バイト、キロバイト、メガバイト、ギガバイト、テラバイト、ペタバイト。
-i
各ファイルについて、inode 番号を表示します。
-k
左にあるどんな -h オプションも無効にすることを除いて、環境変数 BLOCKSIZE を 1024 に設定するのと同じ効果があります。
-l
(“エル (L)”の小文字)。下記の ロング形式 セクションで説明されるように、ロング形式でファイルをリストします。
-m
ストリーム出力形式。ファイルを、コンマで区切って、ページの横方向に表示します。
-n
長い ( -l) 出力において、ユーザとグループを名前に変換せずに、ユーザとグループの ID を数値で表示します。
-o
ロング ( -l) 出力にファイルフラグを含めます。ファイルのフラグのリストとそれらの意味ついては、 chflags(1) を参照してください。
-p
そのファイルがディレクトリであるなら、各ファイル名の後にスラッシュ (‘ /’) を書き込みます。
-q
ファイル名中の表示できない文字を文字‘ ?’として強制的に印刷 (表示) します。出力が端末であるとき、これは、デフォルトです。
-r
ソートの順序を逆向きにします。
-s
各ファイルによってファイルシステムで使用されるブロックの数を表示します。ブロックサイズとディレクトリの合計は、 (また、ロング形式が要求されないなら) ディレクトリの合計が、マルチカラム出力が要求されても、出力がシングルカラムであるとき、出力されないことを除いて、下記の ロング形式 セクションで説明されるように取り扱われます。
-t
更新された時刻の降順にソートします (最も最近更新したものを最初に)。 2 ファイルに同じ更新のタイムスタンプがあるなら、辞書編集の昇順に、それらの名前をソートします。 -r オプションは、これらのソート順序を両方とも反対にします。

これらのソート順序は、矛盾していることに注意してください: 時刻のシーケンスは、降順で、辞書編集順のソートは、昇順です。この振る舞いは、 IEEE Std 1003.2 (“POSIX.2”) によって強制されています。この機能は、同じタイムスタンプがある 2 つ以上のイメージを持つことが可能なところで、ディジタルカメラからのように、 FAT ファイルシステムで連続する名前でソートされたファイルをリストする問題を引き起こすかもしれません。そのような場合に、写真は、それらが取られたシーケンスでリストすることができません。時刻のためと辞書編集順のソートのための同じソート順序を保証するためには、環境変数 LS_SAMESORT を設定するか、または -y オプションを使用します。これによって ls は、同じ更新のタイムスタンプがあるファイルをソートするとき、辞書編集順のソート順序を反対にします。

-u
ソートの ( -t) または印刷の ( -l) のためのファイルの最終更新時刻の代わりに、最終アクセス時刻を使用します。
-w
非印刷可能文字をそのまま強制的に印刷します。これは、出力が端末でないとき、デフォルトです。
-x
マルチカラム出力のカラムが下方向でなく、横方法にソートされたエントリで生成されることを除いて、 -C と同じです。
-y
-t オプションが設定されるとき、時刻の出力と同じ順でアルファベットの出力をソートします。これは、 LS_SAMESORT を設定することと同じ効果があります。より詳しい情報については、 -t オプションの説明を参照してください。
-1
(数字の“1)”。出力を 1 行ごとに 1 つのエントリとするように強制します。これは、出力が端末でないとき、デフォルトです。
-,
(コンマ) -l オプションが設定されるとき、 localeconv(3) によって返された非貨幣のセパレータを使用して無数のグループ化され、分離されたファイルサイズを印刷します。ロケールが設定されていないか、または、ロケールに非貨幣のセパレータがないなら、このオプションには、効果がありません。

-1, -C, -x-l オプションは、すべて互いに上書きします。最後に指定されたものが、使用される形式と決定します。

-c, -u-U オプションは、すべて互いに上書きします。最後に指定されたものが、使用されるファイル時間と決定します。

-S-t オプションは、互いを上書きします。使用された順序で、最後に指定されたものに決定します。

-B, -b, -w-q オプションは、すべて互いに上書きします。最後に指定されたものが、印字不可文字のための使用される形式と決定します。

-H, -L-P オプションは、すべて互いに上書きします (部分的または全体的のいずれか)。それらは、指定された順序で適用されます。

デフォルトで、 ls は、標準出力に 1 行ごとに 1 つのエントリをリストします。例外は、端末または -C または -x オプションが指定されるときです。

ファイル情報は、 -i, -s-l オプションに関連した情報を分離する、1 つ以上の<空白>を付けて表示されます。

ロング形式

-l オプションが与えられるなら、次の情報が各ファイルに対して表示されます: ファイルモード、リンクの数、所有者名、グループ名、MAC ラベル、ファイル中のバイトの数、短縮された月、最後に修正されたファイルの月の日 (day-of-month)、最後に修正されたファイルの時、最後に修正されたファイルの分、またパス名。

ファイルの更新時刻が 6 ヶ月以上の過去または未来であり、 -D または -T が指定されないなら、時間と分のフィールドの代わりに最後の更新時刻の年が、表示されます。

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

ファイルがキャラクタ特殊ファイルまたはブロック特殊ファイルであるなら、ファイルのデバイス番号がサイズフィールドに表示されます。ファイルがシンボリックリンクであるなら、リンクされたファイルのパス名は、“ ->”で先行されます。

ディレクトリの内容のリストは、ディレクトリの内容 (他のオプションによって、 ... およびドットで始まる他のファイル含むかもしれない) としてリストされるファイルによってファイルシステムで使用されるラベルが付けられたブロックの合計数によって先導されます。

デフォルトのブロックサイズは、512 バイトです。ブロックサイズは、オプション -k または環境変数 BLOCKSIZE で設定されます。出力でのブロックの数は、切り上げられてしまうかもしれないので、バイトの数は、すくなくとも (異なったサイズがあるるかもしれない) 対応するファイルシステムブロックによって使用されるのと同じ数です。

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

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

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

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

環境変数

以下の環境変数は、 ls の動作に影響を与えます:
BLOCKSIZE
これが設定されるなら、512 に切り上げられるか、512 の倍数に切り下げられる値は、 -l-s オプションによってバイト単位のブロックサイズとして使用されます。詳しい情報に関しては、 ロング形式 セクションを参照してください。
CLICOLOR
ANSI カラーシーケンスを使用し、ファイルタイプを区別します。後述の LSCOLORS を参照してください。 -F で前述したもの加え、更なる属性 (setuid ビット設定等) もまた表示されます。カラー化は、適切な termcap(5) ケーパビリティを持つ端末タイプに依存します。デフォルトの“ cons25”コンソールは、適切なケーパビリティを持っていますが、例えば xterm(1) でカラー表示したい場合には、 TERM 変数を“ xterm-color”に設定する必要があります。他の端末タイプも同様の修正が必要かもしれません。出力が端末に向けられていない場合、カラー化は、黙って無効化されます。ただし、 CLICOLOR_FORCE 変数が定義されている場合は、例外です。
CLICOLOR_FORCE
出力が端末に向けられていない場合、通常、カラーシーケンスは、無効化されます。この変数を設定することによって、これを上書きすることができます。 TERM 変数は、カラー出力可能な端末を参照することが必要です。そうなっていない場合、どのカラーシーケンスを使用すべきか決定できません。
COLUMNS
この変数が 10 進整数を表す文字列を含んでいるなら、複数のテキストカラム出力を表示するためのカラム位置の幅として使用されます。 ls ユーティリティは、与えられた幅に基づいてどのくらい多くのパス名テキストカラムを表示するかを計算します。 ( -C-x を参照)。
LANG
長い -l 形式出力における、日と月の順序を決定するために使用するロケールです。詳細は、 environ(7) を参照してください。
LSCOLORS
本変数の値は、 CLICOLOR によってカラー出力が有効であるときに、どの色をどの属性に使用するかを指定します。この文字列は、書式 f b の結合であり、ここで 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・ブロック数・リンク数・ユーザ名・グループ名・フラグ・ファイルサイズ・ファイル名。
LS_SAMESORT
この変数が設定されるなら、 -t オプションは、時刻でソートされるように、同じセンズの同じ更新タイムスタンプがあるファイルの名前をソートします。より詳しい情報については、 -t オプションの説明を参照してください。
TERM
CLICOLOR の機能は、端末タイプのカラーケーパビリティが必要です。
TZ
日時を表示するときに使われるタイムゾーンを指定します。詳細は、 environ(7) を参照してください。

終了ステータス

The ls utility exits 0 on success, and >0 if an error occurs.

使用例

ロング形式で現在の作業ディレクトリの内容をリストします:

$ ls -l

ロング形式で現在の作業ディレクトリの内容のリストすることに加えて、 inode 番号、ファイルフラグ ( chflags(1) 参照) とそのファイルタイプを表わすシンボルで各ファイル名に接尾辞を付けて表示します:

$ ls -lioF

最近修正されたエントリが最初に印刷 (表示) されるように出力をソートして、 /var/log 中のファイルをリストします:

$ ls -lt /var/log

互換性

グループフィールドは、現在、 IEEE Std 1003.2 (“POSIX.2”) 仕様と互換性をとるために、ファイルのための長いリストを自動的に含んでいます。

規格

オプション -I, -g, -n-o を除いて、 ls ユーティリティは、 IEEE Std 1003.1-2001 (“POSIX.1”) に適合しています。

ACL サポートは、 IEEE Std 1003.2c (“POSIX.2c”) Draft 17 (取り下げられた) と互換性があります。

歴史

ls コマンドは、 Version 1 AT&T UNIX で登場しました。

バグ

後方互換性を保守するために、多くのオプションとの関係が、かなり複雑です。

-s オプション記述で述べられた例外は、通常、シングルカラム出力が端末以外の何かに行くという事実に基づいた機能であるかもしれません。それは、これが設計バグであろうとなかろうと、論争の余地があります。

IEEE Std 1003.2 (“POSIX.2”) は、 -t オプションでソートするとき、同じタイムスタンプがあるファイルに対して反対のソート順序を強制します。

March 15, 2013 FreeBSD