ls コマンド

目的

ディレクトリーの内容を表示します。

構文

ディレクトリーの内容またはファイル名を表示する

LS [ -1 ] [ -A ] [ -C ] [ -E (E) ] [ -F (R) ] [-H | -L (L) ] [ -N (N) ] [ -R ] [ -S (S) ] [ -X (X)] [ -a 値 ] [ -b ] [ 「-c」 ] [ -d 年 ] [ -e (E) ] [ 「-f」 ] [ - ] [ I ] [-k (K)] [ - ] [ -m (M) ] [ N ] [ - ] [ P- ] [ -Q (Q) ] [ - ] [ -s ] [ T ] [ -ウー ] [ -U ] [ -x (X) ] [ ファイル ... ]

ディレクトリーの内容を表示する

ls -f [ -C ] [ -d ] [ -i ] [ -m ] [ -s ] [ -X] [ -x ] [ -1 ] [ -U ] [ Directory ... ]

説明

ls コマンドは、 指定した各 Directory パラメーターの内容または指定した各 File パラメーターの名前を、 フラグで要求した他の情報と共に標準出力に書き出します。 File パラメーターまたは Directory パラメーターを指定しなければ、 ls コマンドは現行ディレクトリーの内容を表示します。

互いに排他的な対に複数のオプションを指定してもエラーにはなりません。 各対の最後に指定されたオプションによって出力フォーマットが決まります。

デフォルトでは、ls コマンドはすべての情報をファイル名別にアルファベット順で表示します。 照合シーケンスは、LANG または LC_COLLATE 環境変数によって決定されます。

ls コマンドは、ディレクトリーの内容を表示するとき、名前が で始まるファイルの項目は表示しません。 (ドット)。ただし、 -a フラグまたは -A フラグを使用した場合を除きます。 コマンドが root によって実行される場合、デフォルトでは -A フラグを使います。

出力をフォーマットするには、主に次の 3 つの方法があります。

  • 1 行に 1 つのエントリーをリストします。
  • エントリーを複数の列でリストするには、 -C フラグ または -x フラグのどちらかを指定します。 -C フラグは TTY に出力する場合のデフォルトのフォーマットです。 ls コマンドは、 ファイル名またはディレクトリー名が長すぎる場合、単一列の出力を表示します。
  • エントリーをコンマで区切ってリストするには、 -m フラグを指定します。

ls コマンドは、 出力行の文字の桁数を決定するために環境変数 COLUMNS を使います。 この変数が設定されていなければ、ディスプレイの現在の桁数を使用します。 ls コマンドは、 これらの方法で文字の桁数を決定できなければ、 デフォルト値 80 を使います。

-U フラグで表示されるモードは、 -l フラグの場合と同じですが、以下のように解釈される 11th 番目の文字が追加される点が異なります。
項目 説明
E ファイルに拡張属性 (EA) 情報が含まれていることを示します。 ファイルの EA は、 getea コマンドを使用して表示されます。
- ファイルに拡張属性情報がないことを示します。
e ファイルが暗号化されることを示します。

暗号化は、アクセス制御リスト (ACL) および他の EA に優先します。

-e フラグと -l フラグの使用時に表示されるモードは次のように解釈されます。

先頭文字の意味は次のとおりです。

項目 説明
d エントリーはディレクトリーです。
b エントリーはブロック・スペシャル・ファイルです。
C エントリーはキャラクター・スペシャル・ファイルです。
l エントリーはシンボリック・リンクで、 -N フラグが指定されているか、 シンボリック・リンクが既存のファイルを指していません。
p エントリーは先入れ先出し (FIFO) スペシャル・ファイルです。
s エントリーはローカル・ソケットです。
- エントリーは通常ファイルです。

9 文字は、それぞれ 3 文字ずつの 3 セットに分割されます。 最初の 3 文字のセットは、オーナーの許可を表示します。 次の 3 文字のセットは、オーナー以外のグループ内ユーザーの許可を表示します。 最後の 3 文字のセットは、そのファイルにアクセスする他のユーザーの許可を示します。 各セット内の 3 文字はそれぞれ、ファイルの読み取り、 書き込み、および実行許可を示します。 ディレクトリーの実行許可があると、 ユーザーは指定されたファイルのディレクトリーを検索できます。

許可は次のように示されます。

項目 説明
r 読み取り
w 書き込み (編集)
x 実行 (検索)
- 対応する許可が与えられていない

ファイルにセット・グループ ID モードが設定されている場合、 グループ実行許可を表す文字は s です。 ファイルにセット・ユーザー ID モードが設定されている場合、 ユーザー実行許可を表す文字は s です。 モードの 01000 (8 進数) ビットが設定されている場合、モードの最後の文字 (通常は X または -) は T 値 です (このモードの意味については、 ChMOD コマンドを参照してください)。 対応する実行許可が設定されていない場合は、 モードのセット ID と 01000 ビットのモードが大文字で表示されます (それぞれ ST)。 モード t は、 ファイルまたはディレクトリーのスティッキー・ビットがオンであることを示します。

-e フラグで表示されるモードは、11 番目の文字が追加されていること以外は -l フラグの場合と同じです。この 11 番目の文字は次のように解釈されます。

項目 説明
+ ファイルに拡張セキュリティー情報が含まれていることを示します。 例えば、ファイルのモード内に拡張 ACLTCB、または TP 属性が入っている場合があります。

ファイルのアクセス制御情報 (ACL) は、 aclget コマンドを使用して表示されます。 TCB および TP 属性の値は、 chtcb コマンドを使用して表示されます。

- ファイルに拡張セキュリティー情報がないことを示します。

ディレクトリー内のファイルのサイズが指定されると、 ls コマンドは間接ブロックを含めたブロックの合計数を表示します。

フラグ

項目 説明
-A . (ドット) および .. (ドット・ドット) 以外のすべてのエントリーをリストします。
-a . (ドット) で始まるエントリーを含め、 ディレクトリー内のすべてのエントリーをリストします。 (ドット) で現行作業行を指定します。
-b 印刷できない文字を 8 進の (¥nnn) 表記法で表示します。
-c ソート (-t フラグと共に使う場合) または表示 (-l フラグと共に使う場合) に、 i ノードを最後に変更した時刻を使います。 このフラグは、-t フラグまたは -l フラグまたはその両方のフラグと共に使わなければ無効です。
-C 出力を複数欄フォーマットで縦にソートします。 端末装置に出力される場合は、これがデフォルトの方式です。
-d 指定されたディレクトリーについての情報だけを表示します。 このフラグを -l フラグと共に使うと、 ディレクトリーはファイルのように取り扱われるので、ディレクトリーの状況を表示するのに便利です。
-e 各ファイルのモード (セキュリティー情報を含む)、リンク数、オーナー、グループ、 サイズ (バイト単位)、最終変更時刻、および名前を表示します。 ファイルがスペシャル・ファイルの場合、 サイズ・フィールドにはメジャー・デバイス番号とマイナー・デバイス番号が含まれます。 ファイルがシンボリック・リンクの場合には, リンク先ファイルのパス名の前に-> (マイナス, より大) 符号が印刷されます。 シンボリック・リンクの属性も表示されます。
-E Vxfs ファイルシステムにあるファイルのエクステント属性 (スペース予約、固定エクステント・サイズ、およびエクステント割り当てフラグ情報など) をリストします。 このフラグは、一緒に -l フラグを指定する必要があります。そうしないと、ls コマンドは -E フラグを無視して実行を完了します。
-f Directory パラメーターで指定された各ディレクトリーの各スロット内の名前をリストします。 このフラグは、 -l-t-s-r のフラグをオフにして、 -a をオンにします。 リストの順番は、ディレクトリー内でエントリーが表示される順序になっています。
-F ファイルがディレクトリーであれば各ファイル名の後ろに / (スラッシュ) を、 実行可能ファイルであれば各ファイル名の後ろに * (アスタリスク) を、 ソケットであれば各ファイル名の後ろに = (等号) を、FIFO であれば | (パイプ) 記号を、シンボリック・リンクであれば @ (アットマーク) を付けます。 -H または -L フラグが指定されないかぎり、オペランドとして指定されたシンボリック・リンクは従われません。
-g -l フラグと同じ情報を表示しますが、 -g フラグはオーナーの情報や、 シンボリック・リンクの情報の表示を抑制します。
-H タイプ・ディレクトリーのファイルを参照するシンボリック・リンクがコマンド・ラインに指定された場合は、ls コマンドはファイル情報およびファイル・タイプをリンクそのものではなく、リンクで参照されたファイルとして評価します。 ただし、ls コマンドは、リンクに参照されるファイルではなく、リンク自体の名前を書き込みます。
-i 各ファイルのレポートの最初の列に、i ノード番号を表示します。 ファイルシステムに内部スナップショットがある場合は、.snapshot ディレクトリーとそのすべての内容に固有の i ノード番号が付けられているわけではありません。
-k -s オプションのブロック・サイズならびに -l-n-g、および -o オプションに書き込まれたディレクトリーごとのブロック数を 1024 バイトに設定します。
-L リンクが参照するファイルまたはディレクトリーの内容をリストします。 これはデフォルトのアクションです。 後ろにシンボリック・リンクが続きます。 -l オプションを使用した場合は、 -N オプションがデフォルトとなり、 シンボリック・リンクは後ろに続きません。 -l オプションを指定した場合は、 -L オプションだけが -N オプションをオーバーライドできます。
-l (小文字の L) 各ファイルのモード、 リンク数、オーナー、グループ、 サイズ (バイト単位)、最終変更時刻を表示します。 ファイルがスペシャル・ファイルの場合、 サイズ・フィールドにはメジャー・デバイス番号とマイナー・デバイス番号が含まれます。 最終変更時刻が 6 ヵ月より前の場合、 時間フィールドの形式は month date year になります。 6 ヵ月以内に変更されたファイルの時間形式は、 month date time でした。

ファイルがシンボリック・リンクの場合には, リンク先ファイルのパス名の前に-> が印刷されます。 シンボリック・リンクの属性が表示されます。 -n-g-o の各フラグは -l フラグをオーバーライドします。

注:
  1. シンボリック・リンクされたファイルの後ろには、 矢印とシンボリック・リンクの内容が表示されます。
  2. -l オプションを指定して ls コマンドのパフォーマンスを改善するには、 mkpasswd コマンドを実行します。 /tmp ディレクトリーのような、 異なるユーザーによって所有されるファイルを持つディレクトリーが存在する場合、 この方法は便利です。
-m ストリーム出力フォーマット (コンマで区切られたシリーズ) を使います。
-n -l フラグと同じ情報を表示しますが、 -n フラグはユーザー名とグループ名の代わりにユーザー ID とグループ ID を表示します。
-N ファイルの状況を決定するときに、シンボリック・リンクに従いません。

注: -L-N の両方のオプションを使用した場合は、 後に指定されたオプションが優先されます。 さらに、最後の文字に / (スラッシュ) を含むシンボリック・リンクが指定された場合は常に、 使用されたオプションにかかわらず、自動的にそのリンクに従います。

-o -l フラグと同じ情報を表示しますが、 -o フラグはグループとシンボリック・リンク情報の表示を抑制します。
-p ファイルがディレクトリーであれば、各ファイル名の後ろにスラッシュを付けます。 これは、次のように ls コマンドの出力を pr コマンドにパイプ接続する場合に役立ちます。
ls  -p |  pr  -5  -t  -w80
-q ファイル名の中の印刷不能文字を以下のように表示します。?(疑問符)。
-r ソート順序を反転させ、適切であれば逆アルファベット順または古いもの順に表示します。
-R すべてのサブディレクトリーを再帰的にリストします。
-s エントリーごとにサイズ (間接ブロックを含む) を KB 単位で示します。
-S 照合シーケンスで、ファイル・サイズを 1 次キー (降順)、ファイル名を 2 次キー (昇順) としてソートを行います。
-t 名前ではなく、最終変更時刻 (新しい順) でソートします。 シンボリック・リンクの場合、ソート・キーとして使用される時刻は、シンボリック・リンク自体の時刻です。
-U -l フラグと同様の情報を表示します。 各ファイルのモード (セキュリティー情報、指定された拡張属性情報、および暗号化情報を含む)、リンクの数、所有者、グループ、サイズ (バイト単位)、最終変更時刻、および名前を表示します。 ファイルがスペシャル・ファイルの場合、 サイズ・フィールドにはメジャー・デバイス番号とマイナー・デバイス番号が含まれます。 ファイルがシンボリック・リンクの場合、リンク先ファイルのパス名の前に -> (マイナス、より大) 符号が印刷されます。 シンボリック・リンクの属性も表示されます。
-u ソート (-t フラグと共に使う場合) または表示 (-l フラグと共に使う場合) に、 最終変更時刻の代わりに最終アクセス時刻を使います。 このフラグは、-t フラグまたは -l フラグまたはその両方のフラグと共に使わなければ無効です。
-x 出力を複数欄フォーマットで横にソートします。
-X ユーザー名を表示する他のフラグを指定して使用する場合、長いユーザー名を出力します。 上限は、PdAt オブジェクト・クラスおよび CuAt オブジェクト・クラスの max_logname ODM 属性によって決定されます。 ユーザー名が max_logname 属性より大きい場合は、 max_logname 属性で指定された文字数から 1 を引いた数に切り捨てられます。
-1 強制的に 1 行あたり 1 エントリーの出力フォーマットにします。 出力フォーマットが端末装置に転送されない場合は、このフラグがデフォルトの設定です。
注:
  • フラグ -l-n-s-g、または -o のいずれかが指定されると、ディレクトリーに含まれている各ファイルの前に、ファイルによって占有されているファイルシステム・ブロックの数を示す状況表示行が示されます。
  • フラグ -l-n-s-g-o のいずれとも一緒に -k フラグが指定されていない場合は、512 バイト単位でファイルによって占有されているファイルシステム・ブロックの数が状況表示行に示されます。
  • フラグ -l-n-s-g、または -o のいずれかと一緒に -k フラグが指定される場合は、1024 バイト単位でファイルによって占有されているファイルシステム・ブロックの数が状況表示行に示されます。
  • さらに、必要に応じて、ディレクトリー内のファイルによって占有されるファイルシステム・ブロックの数は、次の整数単位数に丸められます。
  • POSIX ロケール環境では、合計 %u\n は、ディレクトリー内の単位数を表す出力形式です。

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 ファイルはすべて正常に書き込まれました。
>0 エラーが発生しました。

セキュリティー

RBACユーザーおよびTrustedAIXユーザーに注意:このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限と特権の詳細については、セキュリティの特権コマンドデータベースを参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

  1. 現行ディレクトリー内のすべてのファイルをリストするには、次のように入力します。
    ls -a
    これにより、. (ドット)、 .. (ドット・ドット)、 およびファイル名がドットで始まるファイルを含むすべてのファイルがリストされます。
  2. 詳細情報を表示するには、次のように入力します。
    ls   -l chap1  .profile
    これにより、詳細情報を含む詳細リストが表示されます。chap1および.profile.
  3. ディレクトリーに関する詳細情報を表示するには、次のように入力します。
    ls   -d   -l  .  manual  manual/chap1
    これにより、ディレクトリーの詳細なリストが表示されます。.およびmanual、およびファイルのmanual/chap1-d フラグを指定しないと、これにより、.およびmanualディレクトリー自体に関する詳細情報ではなく、ディレクトリー。
  4. 変更時刻の順にファイルをリストするには、次のように入力します。
    ls   -l -t
    これにより、最後に変更されたファイルから新しい順にファイルの詳細情報が表示されます。
  5. 拡張されたユーザー名およびグループ名がある詳細情報を表示するには、 次のように入力します。
    ls  -lX .profile
    これにより、.profile についての詳細情報がある長いリストが表示されます。
  6. 現行ディレクトリー内のファイルに拡張属性が設定されているかどうかについての情報を表示するには、 次のように入力します。
    ls -U
    • リリースAIX® 5.3以前の場合:

      出力の例:

        -rwSr-x---+   1 root     system           28 Apr 29 03:23 only_aixc
        -rwSr-x---E   1 root     system            4 Apr 29 03:23 only_aixc_ea
        -rw-r--r--E   1 root     system            4 Apr 29 03:23 only_ea
        ----------+   1 root     system          265 Apr 29 03:23 only_nfs4
        ----------E   1 root     system           64 Apr 29 03:23 only_nfs4_ea
        -rw-r--r---   1 root     system            4 Apr 29 03:23 only_regular
    • AIX 6.1 以降のリリースの場合:

      出力の例:

        -rwSr-x---+    1 root     system           28 Apr 29 03:23 only_aixc
        -rwSr-x---E    1 root     system            4 Apr 29 03:23 only_aixc_ea
        -rw-r--r--E    1 root     system            4 Apr 29 03:23 only_ea
        ----------+    1 root     system          265 Apr 29 03:23 only_nfs4
        ----------E    1 root     system           64 Apr 29 03:23 only_nfs4_ea
        -rw-r--r---    1 root     system            4 Apr 29 03:23 only_regular
        -rwxrwxr-xe    2 root     system          256 May 25 16:27 encry_ex 
  7. 現行ディレクトリーに含まれるファイルの 512 バイト単位のファイルシステム・ブロックの数に関する情報を表示するには、次のように入力します。
    ls -l
    出力の例:
    total 16
    -rw-r--r--    1 root     system           22 Feb 05 05:29 sample1
    -rw-r--r--    1 root     system           12 Feb 05 05:29 sample2
  8. 現行ディレクトリーに含まれるファイルの 1024 バイト単位のファイルシステム・ブロックの数に関する情報を表示するには、次のように入力します。
     ls -lk
    出力の例:
    total 8
    -rw-r--r--    1 root     system           22 Feb 05 05:29 sample1
    -rw-r--r--    1 root     system           12 Feb 05 05:29 sample2

ファイル

項目 説明
/usr/bin/ls ls コマンドが入っています。
/etc/passwd ユーザー ID が入っています。
/etc/group グループ ID が入っています。
/usr/share/lib/terminfo/* 端末情報が入っています。