ls コマンド

目的

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

構文

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

ls [ -1 ] [ -A ] [ -C ] [ -F ] [-H | -L ] [ -N ] [ -R ] [ -X] [ -a ] [ -b ] [ -c ] [ -d ] [ -e ] [ -f ] [ -g ] [ -i ] [ -l ] [ -m ] [ -n ] [ -o ] [ -p ] [ -q ] [ -r ] [ -s ] [ -t ] [ -u ] [ -U ] [ -x ] [ File ... ]

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

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

説明

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

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

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

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

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

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

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

E ファイルに拡張属性 (EA) 情報が含まれていることを示します。ファイルの EA は、 getea コマンドを使用して表示できます。
- ファイルに拡張属性情報がないことを示します。

-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 属性が入っている場合があります。
- ファイルに拡張セキュリティー情報がないことを示します。

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

フラグ

-A . (ドット) および .. (ドット・ドット) 以外のすべてのエントリーをリストします。
-a . (ドット) で始まるエントリーを含め、ディレクトリー内のすべてのエントリーをリストします。
-b 印刷できない文字を 8 進の (\nnn) 表記法で表示します。
-c ソート (-t フラグと共に使う場合) または表示 (-l フラグと共に使う場合) に、 i ノードを最後に変更した時刻を使います。このフラグは、-t フラグ、 -l フラグ、 またはその両方のフラグと共に使わなければなりません。
-C 出力を複数欄フォーマットで縦にソートします。端末装置に出力される場合は、これがデフォルト方式です。
-d 指定されたディレクトリーについての情報だけを表示します。このフラグを -l フラグと共に使うと、 ディレクトリーはファイルのように取り扱われるので、ディレクトリーの状況を表示するのに便利です。
-e 各ファイルのモード (セキュリティー情報を含む)、リンク数、オーナー、グループ、サイズ (バイト単位)、最終変更時刻、および名前を表示します。ファイルがスペシャル・ファイルの場合、サイズ・フィールドにはメジャー・デバイス番号とマイナー・デバイス番号が含まれます。ファイルがシンボリック・リンクである場合は、 前に -> (マイナス、より大) 符号が付いたリンク先ファイルのパス名が出力されます。シンボリック・リンクの属性も表示されます。
-E ファイルのスペース予約、固定エクステント・サイズ、およびエクステント 割り当てフラグ情報をリストします。このフラグと共に -l を指定しなければなりません。
-f Directory パラメーターで指定された各ディレクトリーの各スロット内の名前をリストします。このフラグは、 -l-t-s-r のフラグをオフにして、 -a をオンにします。リストの順番は、ディレクトリー内でエントリーが表示される順序になっています。
-F ファイルがディレクトリーであれば各ファイル名の後ろに / (スラッシュ) を、実行可能ファイルであれば各ファイル名の後ろに * (アスタリスク) を、ソケットであれば各ファイル名の後ろに = (等符号) を、FIFO であれば | (パイプ) 記号を、シンボリック・リンクであれば @ (アットマーク) を付けます。

注: シンボリック・リンクの末尾に -> が付いて表示されるのは、 -N フラグが指定されているか、そのリンクが存在しないファイルを指している場合だけです。それ以外の場合は、ターゲット・ファイルについての情報が表示されます。また、ls -f コマンドを入力して、 このオプションを呼び出すこともできます。
-g -l フラグと同じ情報を表示しますが、 -g フラグはオーナーの情報や、シンボリック・リンクの情報の表示を抑制します。
-H タイプ・ディレクトリーのファイルを参照するシンボリック・リンクがコマンド行に指定された場合は、ls コマンドはファイル情報およびファイル・タイプをリンクそのものではなく、リンクで参照されたファイルとして評価します。ただし、ls コマンドは、リンクに参照されるファイルではなく、リンク自体の名前を書き込みます。
-i 各ファイルについてのレポートの最初の列に i ノード番号を表示します。
-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 エントリーごとにサイズ (間接ブロックを含む) を K バイト単位で示します。
-t 名前ではなく、最終変更時刻 (新しい順) でソートします。
-U -l フラグの場合と同様の情報を表示します。各ファイルのモード (セキュリティー情報、および指定された拡張属性情報を含む)、リンク数、所有者、グループ、サイズ (バイト単位)、最終変更時刻、および名前を表示します。ファイルがスペシャル・ファイルの場合、サイズ・フィールドにはメジャー・デバイス番号とマイナー・デバイス番号が含まれます。ファイルがシンボリック・リンクである場合は、 前に -> (マイナス、より大) 符号が付いたリンク先ファイルのパス名が出力されます。シンボリック・リンクの属性も表示されます。
-u ソート (-t フラグと共に使う場合) または表示 (-l フラグと共に使う場合) に、 最終変更時刻の代わりに最終アクセス時刻を使います。このフラグは、-t フラグまたは -l フラグまたはその両方のフラグと共に使わなければ無効です。
-x 出力を複数欄フォーマットで横にソートします。
-X ユーザー名を表示する他のフラグを指定して使用する場合、長いユーザー名を出力します。上限は、PdAt オブジェクト・クラスおよび CuAt オブジェクト・クラスの max_logname ODM 属性によって決定されます。ユーザー名が max_logname 属性より大きい場合は、 max_logname 属性で指定された文字数から 1 を引いた数に切り捨てられます。
-1 強制的に 1 行あたり 1 エントリーの出力フォーマットにします。出力フォーマットが端末装置に転送されない場合は、このフラグがデフォルトの設定です。

終了状況

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

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

  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
    出力の例:
      -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
    

ファイル

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

関連情報

chmod コマンド。


フィードバックの送信 |  このページの評価