名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 注意事項
/usr/bin/ls [-aAbcCdeEfFghHilLmnopqrRstuvVx1@] [file]...
/usr/xpg4/bin/ls [-aAbcCdeEfFghHilLmnopqrRstuvVx1@] [file]...
/usr/xpg6/bin/ls [-aAbcCdeEfFghHilLmnopqrRstuvVx1@] [file]...
file オペランドがディレクトリの場合、ls は、そのディレクトリの内容を出力します。file が通常ファイルの場合、ls は、そのファイル名と要求された他の情報を出力します。デフォルトでは、アルファベット順にソートして出力します。引数をまったく指定しないと、現在のディレクトリの内容を出力します。引数を複数指定すると、引数は最初に適切にソートされますが、ファイル引数がディレクトリとその内容より先に処理されます。
出力形式には、主に 3 種類あります。端末に対するデフォルトの出力形式は、複数カラムで、ソートしたエントリを縦方向に並べて表示します。-1 オプションを指定すると、単一のカラムで出力します。-m オプションを指定すると、ストリーム出力形式で表示します。-C、-x、-m オプションの出力形式を決定するために、ls は環境変数 COLUMNS を使用して、1 行に出力できる文字数を調べます。この環境変数が設定されていない場合は、環境変数 TERM に基づいて、terminfo(4) データベースが使用され、カラム数が決定されます。この情報が得られない場合は、カラム数は 80 カラムと見なされます。
-e、-E、-g、-l、-n、-o、-v、-V、-@ のいずれかのオプションが有効になっている場合、出力されるモードは 11 文字から成ります。最初の文字は次のいずれかです。
エントリがディレクトリの場合。
エントリが door の場合。
エントリがシンボリックリンクの場合。
エントリがブロック型特殊ファイルの場合。
エントリが文字型特殊ファイルの場合。
エントリが FIFO (または「名前付きパイプ」) 特殊ファイルの場合。
エントリがイベントポートの場合。
エントリが AF_UNIX アドレスファミリのソケットの場合。
エントリが通常ファイルの場合。
続く 9 文字は、3 文字ずつの 3 組に分けられます。最初の組は、所有者へのアクセス権を示します。次の組は、同一のグループに属する他のユーザーへのアクセス権を示します。最後の組は、その他のユーザーへのアクセス権を示します。各組においては、3 文字がそれぞれ、ファイルの読み取り、書き込み、実行権を示します。ディレクトリの場合は、実行権は、指定したファイルの有無についてディレクトリを検索するアクセス権を意味します。アクセス権に続く文字は、ACL、拡張属性のいずれかを示します。ファイルに拡張属性が関連付けられており、かつ -@ オプションが有効になっている場合、この文字は @ になります。それ以外の場合、意味のある ACL がファイルに関連付けられている場合にはこの文字はプラス記号 (+) 文字になり、それ以外の場合は空白文字になります。
ls -l (ロング形式出力) は、POSIX ロケールで次のように出力します。
-rwxrwxrwx+ 1 smith dev 10876 May 16 9:42 part2 |
右から左へ見ていくと、現在のディレクトリには part2 というファイルが 1 つあるのがわかります。次に、ファイルの内容を最後に修正したのは、5 月 16 日午前 9 時 42 分です。ファイルには、10,876 文字 (バイト) が含まれています。ファイルの所有者またはユーザーは、グループ dev (おそらく development を示す) に属しており、ログイン名は smith です。この例で 1 と示されている数字は、part2 というファイルへのリンクの数を示します (cp(1) を参照)。プラス記号は、ファイルに関連する ACL があることを示します。-@ オプションが指定されている場合、拡張属性が存在していると ACL は無効になり、プラス記号はアット記号 (@) に置き換えられます。さらにダッシュと文字によって、ユーザー、グループ、その他のユーザーが part2 に対する読み取り、書き込み、実行権を持っていることが示されています。
実行権を表す x は、各組の 3 番目の位置に置かれます。3 番目の位置に - がある場合は、実行権を与えられていないことを示します。
各アクセス権の意味は、次のとおりです。
ファイルが読み取り可能
ファイルが書き込み可能
ファイルが実行可能
指定されたアクセス権は与えられていない
セットユーザー ID ビットまたは セットグループ ID ビットがオンで、対応するユーザーまたはグループ実行権ビットもオン
不定ビット状態 (セットユーザー ID ビットまたはセットグループ ID ビットがオンで、ユーザーまたはグループの実行権ビットがオフ)。グループのアクセス権の場合、通常ファイル以外のファイルだけに適用される。
1000 (8 進数) ビット、つまり、スティッキービットがオン (chmod(1) を参照) で、実行権ビットがオン
1000 ビットがオンで、実行権ビットがオフ (不定ビット状態)
アクセス中に強制ロックが発生する (通常ファイルについて、セットグループ ID ビットがオンで、グループ実行権ビットがオフ)
ユーザーやグループへのアクセス権では、3 番目の位置に x や - ではなく、セットユーザー ID ビットあるいはセットグループ ID ビットの状態に応じて s または S を置くことができます。実行中に、ユーザーのユーザー ID をファイルのユーザー ID と同じと見なすこの機能は、たとえば、スーパーユーザーとして起動したユーザーが、ログイン中に普通にログインした場合のユーザー ID を必要とするときなどに使用されます。
グループへのアクセス権においては、3 番目の位置に l が置かれることがあります。l は、強制的なファイルおよびレコードのロックを示しています。これは アクセス中にその他のファイルに対する読み取り または書き込み権をロックする ファイルの機能があることを示しています。
その他のユーザーへのアクセス権においては、3 番目の位置に t または T が置かれることがあります。これらは、スティッキービットと実行権の状態を示しています。
サポートしているオプションは、次のとおりです。
次のオプションは、ls の 3 つのすべてのバージョンで指定できます。
すべてのエントリを出力します。つまり、ドット (.) で始まるエントリも出力します。
すべてのエントリを出力します。つまり、ドット (.) で始まるエントリも出力します。ただし、作業用ディレクトリ (.) や親ディレクトリ (..) は出力しません。
出力できない文字を 8 進 \ddd の出力形式で強制的に出力します。
(-t オプションによる) ソート や (-l または -n オプションによる) 出力において、i ノードを最後に修正した時刻 (ファイル作成、モード変更など) を使用します。
複数カラム形式の出力で、エントリを縦方向にソートします。これは、デフォルトの出力形式です。
引数がディレクトリの場合、(内容ではなく) その名前だけを出力します。-l とともに使用すれば、ディレクトリの状態を知ることができます。
-l と似ていますが、時刻を秒まで表示します。また、時刻の形式は、年数に関わらず、すべてのファイルに対して 1 つだけで、その形式は POSIX ロケールの場合、mmm dd hh:mm:ss yyyy です。
-l と似ていますが、時刻をナノ秒まで表示します。また、時刻の形式は、年数に関わらず、すべてのファイルに対して、yyyy-mm-dd hh:mm:ss.nnnnnnnnn (ISO 8601 形式) の 1 つだけです。
また、このオプションを指定すると、UTC からのオフセットを ISO 8601 標準形式 (+hhmm または -hhmm) で表示します。オフセットが確認できない場合は何も表示しません。オフセットは、現在のタイムゾーンにおけるファイルの表示日時の時点で有効な標準オフセットまたは代替オフセットを反映しています。
強制的に、各引数をディレクトリと解釈し、各引数のディレクトリで見つかる名前を出力します。このオプションは、-l 、-t 、-s 、-r を無視し、-a が指定されたものと見なします。エントリは、ディレクトリ内での順序で出力されます。
所有者名が出力されない点を除いて、-l と同じです。
すべてのサイズは縮小され、読みやすい形式で表示されます。たとえば、14K、234M、2.7G、3.0T などのようになります。縮尺は、1024 を除数として行われます。
引数がディレクトリを参照するシンボリックリンクの場合、リンク自身ではなく、そのリンクが参照するディレクトリのファイル情報およびファイルタイプを評価します。ただし、表示される名前はリンクの名前であり、参照されるディレクトリの名前ではありません。
各ファイルについて、i ノード番号を第 1 カラムに出力します。
各ファイルについて、モード、ACL 表示、リンクの数、所有者名、グループ名、サイズ (バイト単位) 、最終修正時刻をロング形式で出力します。ファイルが特殊ファイルの場合、サイズフィールドにはメジャーデバイス番号とマイナーデバイス番号が入ります。最終修正時刻が 6 箇月よりも前である場合には、POSIX ロケールでは「月・日・年」の形式で表示されます。LC_TIME ロケールカテゴリが POSIX ロケールに設定されていない場合には、異なった形式で時間フィールドが表示されます。最終修正時刻が 6 箇月以内である場合には、「月・日・時」の形式で表示されます。ファイルがシンボリックリンクの場合は、ファイル名を出力したあとに、-> に続いて参照されるファイルのパス名が出力されます。
引数がシンボリックリンクの場合、リンク自身ではなく、そのリンクが参照するファイルまたはディレクトリのファイル情報およびファイルタイプを評価します。しかし、表示される名前はリンクの名前であり、参照されるファイルまたはディレクトリの名前ではありません。
ストリーム形式出力を指定します。ファイルはコンマで区切られ横方向に出力されます。
所有者名とグループ名の代わりに、所有者のユーザー ID とグループのグループ ID が出力されることを除き、-l と同じです。
グループ名が出力されない点を除き、-l と同じです。
ファイルがディレクトリの場合、各ファイル名のあとにスラッシュ (/) を付けます。
ファイル名中の出力できない文字を疑問符記号 (?) として出力します。
他のオプションの指定に応じて、アルファベットの逆順にまたはファイルが古い順にソートします。
サブディレクトリの内容を再帰的に出力します。
各エントリについて、間接ブロックを含むブロック数を出力します
ファイル名ではなく、タイムスタンプ (新しい順 ) でソートします。デフォルトは最終修正時刻です (-u と -c を参照)。
(-t オプションによる) ソート または (-l オプションによる) 出力において、最終修正時刻の代わりに、最終アクセス時刻を使用します。
-l とほぼ同じですが、-l 出力のほかに冗長な ACL 情報が表示される点が異なります。ACL を持たないファイルやディレクトリの場合でも、ACL 情報が表示されます。
-l とほぼ同じですが、-l 出力のあとにコンパクトな ACL 情報が表示される点が異なります。
-V オプションを適用できるのは、Solaris の ZFS ファイルシステムなど、NFSv4 ACL をサポートするファイルシステムに対してだけです。
ACL の表示形式は次のとおりです。
entry_type : permissions : inheritance_flags : access_type |
entry_type に表示されるのは、次のいずれかです。
username に対する追加のユーザーアクセス。
グループ groupname に対する追加のグループアクセス。
ファイルの所有者。
ファイルのグループ所有者。
すべてのユーザーのアクセス。ファイルの所有者とグループ所有者も含みます。これは、POSIX の「other」クラスと等価ではありません。
-v、-V のいずれかのオプションを使用した場合、NFSv4 ACL モデルでサポートされている次のアクセス権が表示されます。
ファイルのデータを読み取る権限。
ディレクトリの内容を一覧表示する権限。
ファイルのデータを変更する権限。ファイルのオフセット範囲内の任意の場所。
新しいファイルをディレクトリに追加する権限。
ファイルのデータを変更する機能。ただし、変更できるのは EOF 以降のみです。
ディレクトリにサブディレクトリを作成する権限。
ファイルの拡張属性を読み取る機能。
拡張属性を作成したり拡張属性ディレクトリに書き込んだりする機能。
ファイルを実行する権限。
ファイルの基本属性 (ACL 以外) を読み取る機能。
ファイルまたはディレクトリに関連付けられた時刻を任意の値に変更する権限。
ファイルを削除する権限。
ディレクトリ内のファイルを削除する権限。
ファイルの ACL を読み取る権限。
ファイルの ACL を書き込む権限。
ファイルの所有者を変更する権限。
同期付きの読み取り権と書き込み権を使ってサーバー上のファイルにローカルアクセスする権限。
アクセス権が許可されていない。
-v、-V のいずれかのオプションを使用した場合、NFSv4 ACL モデルでサポートされている次の継承フラグが表示されます。
新たに作成されたすべてのファイルに継承します。
新たに作成されたすべてのディレクトリに継承します。
ディレクトリに対して指定された場合、そのディレクトリには適用せず、新たに作成されたファイルやディレクトリだけに適用します。このフラグを使用する際には、file_inherit または dir_inherit、あるいはその両方も指定する必要があります。
ディレクトリ内のオブジェクトには ACL エントリを継承しますが、レベルが 1 つ下がった時点でその継承を停止すべきであることを示します。このフラグを使用する際には、file_inherit または dir_inherit、あるいはその両方も指定する必要があります。
成功したアクセス。
失敗したアクセス。
アクセス権が許可されていない。
access_type に表示されるのは、次のいずれかのタイプです。
許可されたアクセス権を表すアクセス権フィールド
拒否されたアクセス権を表すアクセス権フィールド
次に例を示します。
$ ls -dV /sandbox/dir.1 drwxr-xr-x+ 2 root root 2 Jan 17 15:09 dir.1 user:marks:r-------------:fd----:allow owner@:--------------:------:deny owner@:rwxp---A-W-Co-:------:allow group@:-w-p----------:------:deny group@:r-x-----------:------:allow everyone@:-w-p---A-W-Co-:------:deny everyone@:r-x---a-R-c--s:------:allow $ ||||||||||||||:||||||+ 失敗したアクセス ||||||||||||||:|||||+--成功したアクセス ||||||||||||||:||||+-- 伝播なし ||||||||||||||:|||+--- 継承のみ ||||||||||||||:||+---- ディレクトリ継承 ||||||||||||||:|+----- ファイル継承 |||||||||||||| ||||||||||||||+ 同期 |||||||||||||+- 所有者の変更 ||||||||||||+-- 書き込み ACL |||||||||||+--- 読み取り ACL ||||||||||+---- 拡張属性の書き込み |||||||||+----- 拡張属性の読み取り ||||||||+------ 属性の書き込み |||||||+------- 属性の読み取り ||||||+-------- 子の削除 |||||+--------- 削除 ||||+---------- 追加 |||+----------- 実行 ||+------------ データの書き込み |+------------- データの読み取り |
複数カラム形式出力で、エントリを縦方向ではなく横方向にソートします。
1 行の出力につき 1 つのエントリを出力します。
-l と似ていますが、拡張属性が存在していると ACL は無効になります。拡張属性を持つファイルのアクセス権ビットの後ろにはアット記号 (@) が表示されます。
ディレクトリの末尾にスラッシュ (/) を、door の末尾に大記号 (>) を、実行可能ファイルの末尾にアスタリスク (*) を、FIFO の末尾に縦線 (|) を、シンボリックリンクの末尾に「at」記号 (@) を、AF_UNIX アドレスファミリソケットの末尾に等号 (=) を、それぞれ付加します。これらは、オペランドとして指定したシンボリックリンクのあとに表示されます。
次のオプションは、同時に指定できません。このような矛盾する組み合わせでオプションを指定してもエラーにはなりません。-C と -l (小文字のエル)、-m と -l (小文字のエル)、-x と -l (小文字のエル)、-@ と -l (小文字のエル)。-l 指定が有効となります。
次のオプションは、同時に指定できません。このような矛盾する組み合わせでオプションを指定してもエラーにはなりません。-C と -l (数字の 1)、-H と -L、-c と -u、-e と -E。あとの方で指定されたものが有効になります。
ディレクトリの末尾にスラッシュ (/) を、door の末尾に大記号 (>) を、実行可能ファイルの末尾にアスタリスク (*) を、FIFO の末尾に縦線 (|) を、シンボリックリンクの末尾に「at」記号 (@) を、AF_UNIX アドレスファミリソケットの末尾に等号 (=) を、それぞれ付加します。これらは、オペランドとして指定したシンボリックリンクのあとに表示されます。
次のオプションは、同時に指定できません。このような矛盾する組み合わせでオプションを指定してもエラーにはなりません。-C と -l (小文字のエル)、-m と -l (小文字のエル)、-x と -l (小文字のエル)、-@ と -l (小文字のエル)、-C と -1 (数字の 1)、-H と -L、-c と -u、および -e と -E。最後に指定したオプションが出力形式を決定します。
ディレクトリの末尾にスラッシュ (/) を、door の末尾に大記号 (>) を、実行可能ファイルの末尾にアスタリスク (*) を、FIFO の末尾に縦線 (|) を、シンボリックリンクの末尾に「at」記号 (@) を、AF_UNIX アドレスファミリソケットの末尾に等号 (=) を、それぞれ付加します。これらは、-H オプションまたは -L オプションを指定しない限り、オペランドとして指定したシンボリックリンクのあとに表示されません。
次のオプションは、同時に指定できません。このような矛盾する組み合わせでオプションを指定してもエラーにはなりません。-C と -l (小文字のエル)、-m と -l (小文字のエル)、-x と -l (小文字のエル)、-@ と -l (小文字のエル)、-C と -1 (数字の 1)、-H と -L、-c と -u、および -e と -E。最後に指定したオプションが出力形式を決定します。
ファイルが 2G バイト (231 バイト) 以上ある場合の ls の動作については、 largefile(5) を参照してください。
次の例は、特定のファイルに関する詳細情報を表示する方法を示したものです。
% ls -l file.1 -rw-r--r-- 1 gozer staff 206663 Mar 14 10:15 file.1 |
上記のアクセス権文字列 (-rw-r--r--) から、ファイルの所有者が読み取り権と書き込み権を、所有者のグループが読み取り権を、その他のユーザーが読み取り権を、それぞれ持っていることがわかります。
次の例は、特定のディレクトリに関する詳細情報を表示する方法を示したものです。
% ls -ld test.dir drwxr-xr-x 2 gozer staff 2 Mar 14 10:17 test.dir |
上記のアクセス権文字列 (drwxr-xr-x) から、ディレクトリの所有者が読み取り権、書き込み権、および実行権を、所有者のグループが読み取り権と実行権を、その他のユーザーが読み取り権と実行権を、それぞれ持っていることがわかります。
ファイルのアクセス権を表示する別の例を、次に示します。
% ls -l file.2 -rw-rwl--- 1 gozer staff 206663 Mar 14 10:47 file.2 |
上記のアクセス権文字列 (-rw-rwl---) から、ファイルの所有者が読み取り権と書き込み権を、所有者のグループが読み取り権と書き込み権を、それぞれ持っていることがわかります。また、アクセス中にファイルがロックされる可能性のあることもわかります。
次の例は、特定の ZFS ファイルの冗長な ACL 情報を表示する方法を示したものです。
% ls -v file.1 -rw-r--r-- 1 marks staff 206663 Mar 14 10:15 file.1 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
次の例は、特定の ZFS ディレクトリのコンパクトな ACL 情報を表示する方法を示したものです。
% ls -dV test.dir drwxr-xr-x 2 marks staff 2 Mar 14 10:17 test.dir owner@:--------------:------:deny owner@:rwxp---A-W-Co-:------:allow group@:-w-p----------:------:deny group@:r-x-----------:------:allow everyone@:-w-p---A-W-Co-:------:deny everyone@:r-x---a-R-c--s:------:allow |
次の例は、UFS ファイルの ACL 情報を一覧表示する際の ls -v の動作を示したものです。
$ ls -v file.3 -rw-r--r-- 1 root root 2703 Mar 14 10:59 file.3 0:user::rw- 1:group::r-- #effective:r-- 2:mask:r-- 3:other:r-- |
以下のコマンドは、現在のディレクトリ中にあるすべてのファイルの名前を出力します。通常は名前が出力されない、先頭にドット . が付いているファイルの名前も出力します。
example% ls -a |
次のコマンド行の例を見てください。
example% ls -aisn |
このコマンドは、ドットで始まるものを含む、すべてのファイルについて (a) 、i 番号 — ファイルに対応する i ノードのメモリーアドレス — をカラムの左側に (i)、ファイルの サイズ (ブロック単位) を i 番号の右のカラムに (s) 出力します。さらに、コマンドによる出力形式は、ファイルに関連する UID 番号 (ユーザー名の代わり) と GID 番号 (グループ名の代わり) が出力される ロング出力形式の数値バージョン (n) になります。
ディレクトリ内のファイルのサイズを出力する際、間接ブロックを含むブロックの総数を出力します。
ls の実行に影響を与える次の環境変数については、environ(5) のマニュアルページを参照してください。LANG、LC_ALL 、LC_COLLATE、LC_CTYPE、LC_TIME、LC_MESSAGES、NLSPATH、および TZ。
複数のテキストカラムからなる出力を生成する場合に、ユーザーが希望するカラム幅の値を指定します。この変数の値が 10 進整数を示す文字列の場合、ls は書き出すパス名テキストカラムの数を、その幅の値を元に 計算します (-C の説明を参照)。COLUMNS が設定されていない、または値が不適当な場合には、カラム幅として 80 が用いられます。どのディレクトリのファイル名を出力する場合でも、選択されたカラム幅は一定です。複数テキストカラムを出力する際、ファイル名は長すぎても 切り捨てられません。
ls -l および ls -g 用のグループ ID
ls -l および ls -o 用のユーザー ID
端末情報データベース
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
chmod(1), cp(1), setfacl(1), terminfo(4), attributes(5), environ(5), fsattr(5), largefile(5), standards(5)
ファイル名に出力できない文字があると、カラムの出力オプションが正しく処理されないことがあります。
ハードリンクされたファイルがある場合、総ブロック数は正しく表示されません。
ls の出力のソート順序はロケールの影響を受け、LC_COLLATE 環境変数で変更できます。たとえば、LC_COLLATE が C の場合、ファイルを表示する順序は、ファイル名がドット (.) で始まるファイル、次にファイル名が大文字で始まるファイル、そのあとにファイル名が小文字で始まるファイルという順番になります。一方、LC_COLLATE が en_US.ISO8859-1 の場合には、ソート順序を決定する際に、先行するドットや大文字と小文字の区別は無視されます。
名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 注意事項