Linux ls コマンド
Linux ls(英語の正式名: list directory contents)コマンドは、指定された作業ディレクトリの内容を表示するために使用されます(現在の作業ディレクトリに含まれるファイルとサブディレクトリを一覧表示します)。
構文
ls [-alrtAFR] [name...]
オプション:
| オプション | 説明 |
|---|---|
-a 或 --all | すべてのファイルを表示します(.で始まる隠しファイルも含む)。 |
-A 或 --almost-all | を除くすべてのファイルを表示します(.と..隠しファイルも含む)。 |
-l | 長形式(詳細情報)でファイルを一覧表示します(権限、所有者、サイズ、変更時刻など)。 |
-h 或 --human-readable | と-l併用すると、ファイルサイズを人間が読みやすい形式(KB、MBなど)で表示します。 |
-t | 変更時刻順に並べ替えます(新しいもの優先)。 |
-r 或 --reverse | 逆順に並べ替えます(-t、-Sなどと併用します)。 |
-S | ファイルサイズ順に並べ替えます(大きいファイル優先)。 |
-R 或 --recursive | サブディレクトリの内容を再帰的に一覧表示します。 |
-F 或 --classify | ファイル名の後に識別子を追加します(/はディレクトリを表し、*は実行可能ファイルを表します)。 |
--color | カラー出力(通常はデフォルトで有効、--color=auto)。 |
-i 或 --inode | ファイルのinode番号を表示します。 |
-n 或 --numeric-uid-gid | UIDとGIDを数値形式で表示します(ユーザー名とグループ名の代わり)。 |
-d 或 --directory | ディレクトリ自体のみを表示し、その内容は表示しません(通常は-l)。 |
-1 | 1行に1つのファイルを表示します(デフォルトでは端末の幅が足りない場合に自動的に有効になります)。 |
-m | ファイルをカンマ区切りのリスト形式で表示します。 |
-Q 或 --quote-name | ファイル名を引用符で囲みます(スペースを含むファイル名に有効)。 |
--group-directories-first | ディレクトリを先に表示し、その後にファイルを表示します。 |
--time-style=<格式> | 時刻表示形式をカスタマイズします(+%Y-%m-%d)。 |
例
ls -a # 隠しファイルを含む、現在のディレクトリ内のすべてのファイルとディレクトリを表示
ls -lh # 現在のディレクトリ内のファイルとディレクトリのサイズを人間が読みやすい形式で表示
ls -t # 変更時刻順に並べ替えて現在のディレクトリ内のファイルとディレクトリを表示
ls -R # 現在のディレクトリ内のすべてのファイルとサブディレクトリを再帰的に表示
ls -l /etc/passwd # /etc/passwdファイルの詳細情報を表示
例
現在のディレクトリ内のすべてのファイルを詳細に一覧表示します(隠しファイルを含む):
ls -la
ファイルをサイズの逆順で並べ替えます(大きいファイル優先):
ls -lShr
/var/log ディレクトリの内容を再帰的に一覧表示し、人間が読みやすいファイルサイズを表示します:
ls -lhR /var/log
ディレクトリの詳細情報のみを表示します(再帰なし):
ls -ld /etc
変更時刻順に並べ替えます(最新のファイルが最後に表示されます):
ls -ltr
ルートディレクトリ直下のすべてのディレクトリを一覧表示します:
# ls / bin dev lib media net root srv upload www boot etc lib64 misc opt sbin sys usr home lost+found mnt proc selinux tmp var
/bin ディレクトリ以下のすべてのディレクトリとファイルの詳細情報を一覧表示します:
ls -lR /bin
ファイル名にスペースや特殊文字が含まれる場合、または先頭文字がダッシュ(-)の場合は、バックスラッシュ(\)でエスケープするか、引用符でファイル名を囲みます。例えば:
ls "my file.txt" # 列出文件名为"my file.txt"的文件 ls my\ file.txt # 列出文件名为"my file.txt"的文件 ls -- -filename # 列出文件名为"-filename"的文件
ls コマンドではワイルドカードを使用してパターンマッチングを行うこともできます。例えば*は任意の文字列にマッチします、?は任意の1文字にマッチします、[...]は指定された範囲内の文字にマッチします。例えば:
ls *.txt # 列出所有扩展名为.txt的文件 ls file?.txt # 列出文件名为file?.txt的文件,其中?表示任意一个字符 ls [abc]*.txt # 列出以a、b或c开头、扩展名为.txt的文件
現在の作業ディレクトリ内の名前が s で始まるすべてのファイルを一覧表示します。新しいものほど後ろに表示されます:
ls -ltr s*
「ls」コマンドを使用する場合、ls -l最初の列の文字は、ファイルまたはディレクトリの種類と権限を表します。最初の文字はファイルの種類を表します。例えば:
- - は通常ファイルを表します
- d はディレクトリを表します
- l はシンボリックリンクを表します
- c はキャラクタデバイスファイルを表します
- b はブロックデバイスファイルを表します
- s はソケットファイルを表します
- p はパイプファイルを表します
「ls」コマンドを使用する場合、ls -l最初の列の残り9文字は、ファイルまたはディレクトリのアクセス権限を表し、それぞれ3文字1組のrwx権限に対応します。例えば
:- r は読み取り権限を表します
- w は書き込み権限を表します
- x は実行権限を表します
- - は対応する権限がないことを表します
最初の3文字は所有者の権限を表し、真ん中の3文字は所有グループの権限を表し、最後の3文字は他のユーザーの権限を表します。例えば:
-rw-r--r-- 1 user group 4096 Feb 21 12:00 file.txt
ファイル名がfile.txtのファイルでは、所有者は読み取り・書き込み権限を持ち、所有グループと他のユーザーは読み取り権限のみを持ちます。
最近変更されたファイルを検索:
ls -lt | head -5
最近変更された5つのファイルを表示します。
ファイル数を集計:
ls | wc -l
現在のディレクトリ内のファイル数を集計します(隠しファイルは含みません)。
注意事項
ls コマンドの出力色は --color オプションで制御できます:
- 青:ディレクトリ
- 緑:実行可能ファイル
- 赤:圧縮ファイル
- シアン:リンクファイル
- 黄:デバイスファイル
スクリプトで ls を使用する際は注意してください。ls の出力を直接解析するのは信頼性が低い場合があるため、他の方法を使用することをお勧めします。
Linux ディストリビューションによって ls コマンドに微妙な違いがある場合があります。次のコマンドでman ls具体的なヘルプドキュメントを確認できます。
Linux コマンド大全