
LinuC入門|lsコマンドでファイルとディレクトリを確認する
見えている名前だけでなく、隠しファイル、権限、サイズ、更新日時まで。lsコマンドでLinuxのファイル構成を正しく読み取ろう。
Linuxでファイル管理を行うとき、最初に必要になるのが「どのようなファイルやディレクトリが存在しているのか」を確認する操作です。
WindowsのエクスプローラーやGNOMEのファイルマネージャーでは、ファイルをアイコンや一覧で確認できます。一方、CUI環境では、コマンドを使ってディレクトリの内容を調べます。
そのときに使用する代表的なコマンドがlsです。
lsコマンドを実行すると、カレントディレクトリにあるファイルやディレクトリの名前を一覧表示できます。さらにオプションを組み合わせることで、次のような情報も確認できます。
- 隠しファイルを含むすべての項目
- ファイルの種類とアクセス権
- 所有ユーザーと所有グループ
- ファイルサイズ
- 最終更新日時
- iノード番号
- サブディレクトリ内の内容
- ファイルの種類を表す記号
lsはLinuxの基本的なコマンドですが、オプションによって表示内容が大きく変わります。単にファイル名を見るだけでなく、表示された情報を正しく読み取れるようになることが大切です。
この記事ではAlmaLinux 10.2を使用し、一般ユーザーsuzukiによる操作を中心に、lsコマンドの書式、主なオプション、表示結果の読み方を詳しく解説します。
lsコマンドとは
lsコマンドは、ファイルやディレクトリの情報を一覧表示するコマンドです。
lsはlistに由来する名前です。引数にディレクトリを指定すると、そのディレクトリ内の内容が表示されます。ファイルを指定すると、指定したファイルの情報が表示されます。
引数を省略した場合は、カレントディレクトリが対象になります。
GNU版lsの正式な動作としても、引数を省略した場合はカレントディレクトリを表す.が指定されたものとして処理されます。また、通常は名前が.から始まるファイルを表示しません。
lsコマンドの書式
ls [オプション] [ディレクトリまたはファイル]書式にある各項目の意味は次のとおりです。
| 項目 | 説明 |
|---|---|
| ls | ファイルやディレクトリの情報を表示するコマンド |
| オプション | 表示する項目、形式、並び順などを指定する |
| ディレクトリ | 内容を表示したいディレクトリを指定する |
| ファイル | 情報を表示したいファイルを指定する |
オプションと引数は省略できます。
suzuki@AlmaLinux:~$ lsこの場合、現在作業しているディレクトリの内容が表示されます。
lsコマンドの主なオプション
この記事で扱う主なオプションは次のとおりです。
| オプション | 説明 |
|---|---|
| -a | 名前が.から始まる隠しファイルを含め、すべての項目を表示する |
| -l | ファイルの種類、アクセス権、所有者、サイズ、更新日時などを詳細表示する |
| -h | サイズをK、M、Gなどの読みやすい単位で表示する。通常は-lと組み合わせる |
| -i | ファイルやディレクトリのiノード番号を表示する |
| -R | 指定したディレクトリ以下を再帰的に表示する |
| -t | 最終更新日時を基準に、新しいものから順番に表示する |
| -F | ファイルの種類に応じた識別記号を名前の末尾に付ける |
| -d | ディレクトリの内容ではなく、ディレクトリ自身の情報を表示する |
複数のオプションは、次のようにまとめて指定できます。
ls -lahこれは、次の指定を組み合わせたものです。
- -lによる詳細表示
- -aによる隠しファイルの表示
- -hによる読みやすいサイズ表示
オプションを別々に記述することもできます。
ls -l -a -hどちらも基本的には同じ指定です。
図1:lsコマンドの指定と表示対象

この図から分かること
lsコマンドは、引数の指定によって表示対象が変わります。
引数を省略した場合はカレントディレクトリ、ディレクトリを指定した場合はその中にある項目、ファイルを指定した場合はそのファイルが表示対象になります。
オプションは表示方法を変更するために使います。同じ対象でも、-lや-aなどを付けることで、確認できる情報を増やせます。
引数を省略してカレントディレクトリを表示する
引数を付けずにlsを実行すると、カレントディレクトリの内容が表示されます。
suzuki@AlmaLinux:~$ ls
Desktop Downloads Pictures Templates server-note.txt
Documents Music Public Videosプロンプトに表示されている~は、一般ユーザーsuzukiのホームディレクトリを表します。
したがって、この例で表示されているのは次のディレクトリの内容です。
/home/suzuki表示結果から、ホームディレクトリにはDesktop、Documents、Downloadsなどのディレクトリと、server-note.txtというファイルがあることが分かります。
通常のlsでは、名前だけが表示されます。ファイルなのかディレクトリなのか、誰が所有しているのか、どのくらいのサイズなのかといった詳しい情報は表示されません。
ディレクトリを指定して内容を表示する
lsの引数にディレクトリを指定すると、そのディレクトリ内にあるファイルやサブディレクトリが表示されます。
suzuki@AlmaLinux:~$ ls Documents
linux-study.txt network-note.txt report.txtこの例では、カレントディレクトリにあるDocumentsを指定しています。
Documentsは相対パスです。カレントディレクトリを基準として、Documentsディレクトリを探します。
絶対パスで指定することもできます。
suzuki@AlmaLinux:~$ ls /etc
adjtime chrony.conf hosts passwd
aliases dnf hostname ssh/etcはルートディレクトリから始まる絶対パスです。カレントディレクトリがどこであっても、同じ/etcが表示対象になります。
項目数が多いディレクトリでは、実際にはさらに多くの名前が表示されます。
ファイルを指定して情報を表示する
lsにはディレクトリだけでなく、ファイルも指定できます。
suzuki@AlmaLinux:~$ ls /etc/hosts
/etc/hostsオプションを付けない場合は、指定したファイルの名前が表示されます。
ファイルの詳しい情報を確認したい場合は、-lを付けます。
suzuki@AlmaLinux:~$ ls -l /etc/hosts
-rw-r--r--. 1 root root 158 8月 13 09:20 /etc/hostsこの例では、/etc/hostsの種類、アクセス権、所有者、ファイルサイズ、更新日時などを確認できます。
-lで詳しい情報を表示する
-lを指定すると、ファイルやディレクトリの情報が1項目につき1行で詳しく表示されます。
lはlong formatを表し、長い形式で情報を表示するためのオプションです。
-lの書式
ls -l [ディレクトリまたはファイル]カレントディレクトリを詳細表示してみましょう。
suzuki@AlmaLinux:~$ ls -l
合計 12
drwxr-xr-x. 2 suzuki suzuki 29 8月 13 18:20 Desktop
drwxr-xr-x. 2 suzuki suzuki 68 8月 13 19:05 Documents
drwxr-xr-x. 2 suzuki suzuki 6 8月 13 18:20 Downloads
-rw-r--r--. 1 suzuki suzuki 1845 8月 13 20:15 server-note.txt-lの表示には多くの情報が含まれています。
server-note.txtの行を項目ごとに分けると、次のようになります。
-rw-r--r--. 1 suzuki suzuki 1845 8月 13 20:15 server-note.txt| 項目 | 表示例 | 説明 |
|---|---|---|
| ファイルの種類とアクセス権 | -rw-r--r--. | ファイルの種類と所有者、グループ、その他のユーザーに対するアクセス権 |
| ハードリンク数 | 1 | そのiノードを参照しているハードリンクの数 |
| 所有ユーザー | suzuki | ファイルを所有しているユーザー |
| 所有グループ | suzuki | ファイルを所有しているグループ |
| サイズ | 1845 | ファイルサイズ。通常はバイト単位 |
| 最終更新日時 | 8月 13 20:15 | ファイル内容が最後に更新された日時 |
| 名前 | server-note.txt | ファイルまたはディレクトリの名前 |
先頭に表示される合計は、一覧に含まれるファイルがディスク上で使用しているブロック数の合計です。各ファイルのサイズを単純に足した値とは限りません。
ファイルの種類とアクセス権の読み方
-lの先頭に表示される文字列は、ファイルの種類とアクセス権を表します。
-rw-r--r--.最初の1文字はファイルの種類です。
| 先頭文字 | 種類 |
|---|---|
| - | 通常ファイル |
| d | ディレクトリ |
| l | シンボリックリンク |
続く9文字は、3文字ずつ次のように分かれています。
rw- r-- r--| 範囲 | 対象 |
|---|---|
| 最初の3文字 | 所有ユーザーのアクセス権 |
| 中央の3文字 | 所有グループのアクセス権 |
| 最後の3文字 | その他のユーザーのアクセス権 |
アクセス権を表す文字の意味は次のとおりです。
| 文字 | 意味 |
|---|---|
| r | 読み取りが許可されている |
| w | 書き込みが許可されている |
| x | 実行が許可されている |
| - | 対応する権限が許可されていない |
たとえば、-rw-r--r--は次の状態を表します。
- 所有ユーザーは読み取りと書き込みができる
- 所有グループは読み取りだけできる
- その他のユーザーも読み取りだけできる
AlmaLinuxでは、アクセス権の末尾に.が表示されることがあります。この記号は、SELinuxなどに関連する追加のセキュリティ情報が設定されていることを示します。
図2:ls -lで表示される情報の読み方

この図から分かること
ls -lの表示では、ファイル名だけでなく、ファイルの種類、アクセス権、所有者、サイズ、更新日時などを確認できます。
特に先頭の文字列には、ファイルの種類とアクセス権がまとめて表示されています。トラブル調査やファイル管理では、名前だけを見るのではなく、所有ユーザーやアクセス権も一緒に確認することが大切です。
-hでサイズを読みやすく表示する
-lでは、通常、ファイルサイズがバイト単位で表示されます。
大きなファイルでは桁数が多くなるため、サイズを直感的に把握しにくいことがあります。そのような場合は-hを使用します。
hはhuman-readableを表し、人が読みやすい単位でサイズを表示します。
-hの書式
ls -lh [ディレクトリまたはファイル]-hはファイルサイズを表示する-lと組み合わせて使用します。
suzuki@AlmaLinux:~$ ls -lh Documents
合計 2.5M
-rw-r--r--. 1 suzuki suzuki 1.8K 8月 13 19:05 linux-study.txt
-rw-r--r--. 1 suzuki suzuki 2.5M 8月 13 18:42 network-diagram.png
-rw-r--r--. 1 suzuki suzuki 620 8月 12 21:10 report.txtサイズに付く主な単位は次のとおりです。
| 表示例 | おおよその意味 |
|---|---|
| 620 | 620バイト |
| 1.8K | 約1.8キロバイト |
| 2.5M | 約2.5メガバイト |
| 1.2G | 約1.2ギガバイト |
-hを付けると表示が読みやすくなりますが、厳密なバイト数ではなく、単位に合わせて丸められた値が表示されます。
ディレクトリのサイズを読むときの注意
ls -lhでディレクトリを詳細表示すると、ディレクトリにもサイズが表示されます。
suzuki@AlmaLinux:~$ ls -lh
drwxr-xr-x. 2 suzuki suzuki 4.0K 8月 13 18:20 Documentsここに表示される4.0Kは、Documents内に保存されている全ファイルの合計サイズではありません。ディレクトリそのものを管理するために使用されている情報のサイズです。
そのため、ls -lhで表示されるディレクトリのサイズだけを見て、ディレクトリ内のデータ量を判断しないようにしましょう。
-aで隠しファイルを表示する
Linuxでは、名前の先頭が.から始まるファイルやディレクトリを隠しファイル、またはドットファイルと呼びます。
通常のlsでは、これらは表示されません。
suzuki@AlmaLinux:~$ ls
Desktop Downloads Pictures Templates
Documents Music Public Videos-aを付けると、隠しファイルを含むすべての項目が表示されます。
-aの書式
ls -a [ディレクトリ]使用例は次のとおりです。
suzuki@AlmaLinux:~$ ls -a
. .bashrc .local Documents Pictures Videos
.. .cache Desktop Downloads Public
.bash_logout .config Documents Music Templates
.bash_profile-aはallを表します。
表示結果には、.bashrc、.config、.localなど、通常のlsでは表示されなかった項目が含まれています。
| 表示 | 説明 |
|---|---|
| . | カレントディレクトリ自身 |
| .. | 1つ上の親ディレクトリ |
| .bash_logout | ログアウト時の処理に関係する設定ファイル |
| .bash_profile | ログイン時のシェル設定に関係するファイル |
| .bashrc | Bashの対話操作に関係する設定ファイル |
| .config | ユーザーごとの設定ファイルを保存するディレクトリ |
| .local | ユーザーごとのデータやプログラムなどを保存するディレクトリ |
隠しファイルは不要なファイルという意味ではありません。アプリケーションやシェルの設定に使用される重要なファイルが多いため、内容を確認せずに削除しないようにしましょう。
-aと-lを組み合わせる
隠しファイルを含めて詳しい情報を表示するときは、-aと-lを組み合わせます。
suzuki@AlmaLinux:~$ ls -la
合計 32
drwx------. 16 suzuki suzuki 4096 8月 13 20:20 .
drwxr-xr-x. 3 root root 20 8月 12 09:00 ..
-rw-------. 1 suzuki suzuki 1250 8月 13 20:18 .bash_history
-rw-r--r--. 1 suzuki suzuki 18 1月 15 2025 .bash_logout
-rw-r--r--. 1 suzuki suzuki 141 1月 15 2025 .bash_profile
-rw-r--r--. 1 suzuki suzuki 492 1月 15 2025 .bashrc
drwx------. 12 suzuki suzuki 4096 8月 13 18:30 .configこの指定では、隠しファイルについてもアクセス権、所有者、サイズ、更新日時を確認できます。
サイズを読みやすくする場合は、さらに-hを加えます。
suzuki@AlmaLinux:~$ ls -lah-dでディレクトリ自身を表示する
lsにディレクトリを指定すると、通常はそのディレクトリの中身が表示されます。
suzuki@AlmaLinux:~$ ls Documents
linux-study.txt network-note.txt report.txtDocumentsディレクトリ自身の情報を確認したい場合は、-dを使用します。
-dの書式
ls -d [ディレクトリ]-dだけを付けると、指定したディレクトリ自身の名前が表示されます。
suzuki@AlmaLinux:~$ ls -d Documents
Documentsディレクトリ自身のアクセス権、所有者、サイズ、更新日時を確認する場合は、-lと組み合わせます。
suzuki@AlmaLinux:~$ ls -ld Documents
drwxr-xr-x. 2 suzuki suzuki 68 8月 13 19:05 Documentsカレントディレクトリ自身を確認する場合は、.を指定します。
suzuki@AlmaLinux:~$ ls -ld .
drwx------. 16 suzuki suzuki 4096 8月 13 20:20 .| 指定 | 表示される内容 |
|---|---|
| ls Documents | Documentsの中身 |
| ls -d Documents | Documentsというディレクトリ自身 |
| ls -ld Documents | Documents自身の詳しい情報 |
| ls -ld . | カレントディレクトリ自身の詳しい情報 |
-dは、ディレクトリのアクセス権や所有者を調べるときに便利です。
-iでiノード番号を表示する
-iを指定すると、ファイルやディレクトリのiノード番号が表示されます。
-iの書式
ls -i [ディレクトリまたはファイル]使用例は次のとおりです。
suzuki@AlmaLinux:~$ ls -i Documents
1048721 linux-study.txt 1048725 network-note.txt 1048730 report.txt各名前の前に表示されている数値がiノード番号です。
| iノード番号 | ファイル名 |
|---|---|
| 1048721 | linux-study.txt |
| 1048725 | network-note.txt |
| 1048730 | report.txt |
Linuxのファイルシステムでは、ファイルの種類、アクセス権、所有者、サイズ、保存位置などの管理情報がiノードに記録されています。
ファイル名は、iノードを参照するための名前として使われています。そのため、Linuxではファイル名とファイルの管理情報が分けて扱われています。
-iと-lを組み合わせると、iノード番号と詳細情報を同時に確認できます。
suzuki@AlmaLinux:~$ ls -li Documents
合計 12
1048721 -rw-r--r--. 1 suzuki suzuki 1845 8月 13 19:05 linux-study.txt
1048725 -rw-r--r--. 1 suzuki suzuki 3270 8月 13 18:52 network-note.txt
1048730 -rw-r--r--. 1 suzuki suzuki 620 8月 12 21:10 report.txtiノード番号は、同じファイルシステム内でファイルを識別するときに利用されます。
-Rでサブディレクトリの内容も表示する
通常のlsは、指定したディレクトリの直下だけを表示します。
-Rを指定すると、サブディレクトリの中へ順番に入り、その内容も再帰的に表示します。
Rはrecursiveを表します。
-Rの書式
ls -R [ディレクトリ]Documents以下を表示する例を見てみましょう。
suzuki@AlmaLinux:~$ ls -R Documents
Documents:
Linux Network report.txt
Documents/Linux:
command-note.txt permission-note.txt
Documents/Network:
ip-address.txt routing.txt表示結果は、ディレクトリごとに分かれています。
Documents:この見出しの下には、Documents直下の内容が表示されます。
Documents/Linux:この見出しの下には、Documents内にあるLinuxサブディレクトリの内容が表示されます。
-Rはディレクトリ構成全体を確認するときに便利ですが、階層が深い場所やファイル数が多い場所で実行すると、大量の情報が表示されます。
特にrootユーザーで大きなディレクトリを指定する場合は、表示範囲をよく確認してから実行しましょう。
-tで更新日時順に並べ替える
通常のlsでは、現在のロケール設定に基づいて名前順に表示されます。
-tを指定すると、最終更新日時を基準として、新しく更新された項目から順番に表示されます。
-tの書式
ls -t [ディレクトリ]使用例は次のとおりです。
suzuki@AlmaLinux:~$ ls -t Documents
linux-study.txt network-note.txt report.txt名前だけでは更新日時が分からないため、通常は-lと組み合わせると確認しやすくなります。
suzuki@AlmaLinux:~$ ls -lt Documents
合計 12
-rw-r--r--. 1 suzuki suzuki 1845 8月 13 19:05 linux-study.txt
-rw-r--r--. 1 suzuki suzuki 3270 8月 13 18:52 network-note.txt
-rw-r--r--. 1 suzuki suzuki 620 8月 12 21:10 report.txtこの結果では、最も新しく更新されたlinux-study.txtが先頭に表示されています。
-tは、次のような場面で便利です。
- 最近編集したファイルを探したい
- 新しく作成されたログを確認したい
- 更新された設定ファイルを見つけたい
- 複数のファイルの更新順を確認したい
-Fでファイルの種類を見分ける
-Fを指定すると、ファイルの種類に応じた識別記号が名前の末尾に追加されます。
-Fの書式
ls -F [ディレクトリ]使用例は次のとおりです。
suzuki@AlmaLinux:~$ ls -F
Desktop/ Downloads/ Pictures/ Templates/ backup@
Documents/ Music/ Public/ Videos/ maintenance*名前の末尾に付いた記号によって、項目の種類を見分けられます。
| 記号 | 種類 | 表示例 |
|---|---|---|
| / | ディレクトリ | Documents/ |
| * | 実行可能ファイル | maintenance* |
| @ | シンボリックリンク | backup@ |
これらの記号は、実際のファイル名に含まれているわけではありません。lsが種類を分かりやすくするため、表示するときだけ追加しています。
たとえば、Documents/と表示されていても、実際のディレクトリ名はDocumentsです。
-aと-Fを組み合わせると、隠しファイルを含めて種類を確認できます。
suzuki@AlmaLinux:~$ ls -aF
./ .bash_profile .config/ Desktop/ Downloads/ Public/
../ .bashrc .local/ Documents/ Pictures/ Videos/この表示では、.config/や.local/が隠しディレクトリであることも分かります。
図3:目的に応じたlsオプションの使い分け

この図から分かること
lsの各オプションには、それぞれ異なる役割があります。
ファイルの詳細情報が必要なときは-l、隠しファイルを確認するときは-a、更新日時順に確認するときは-tというように、調べたい内容に合わせてオプションを選びます。
複数の情報が必要な場合は、ls -laやls -lhのようにオプションを組み合わせられます。
よく使用するオプションの組み合わせ
lsのオプションは、単独で使用するだけでなく、目的に応じて組み合わせると便利です。
| コマンド | 表示内容 |
|---|---|
| ls | カレントディレクトリの通常の項目を表示 |
| ls -a | 隠しファイルを含めて表示 |
| ls -l | 所有者、サイズ、更新日時などを詳細表示 |
| ls -lh | サイズを読みやすい単位で詳細表示 |
| ls -la | 隠しファイルを含めて詳細表示 |
| ls -lah | 隠しファイルを含め、サイズを読みやすく詳細表示 |
| ls -li | iノード番号を含めて詳細表示 |
| ls -lt | 更新日時が新しい順に詳細表示 |
| ls -aF | 隠しファイルを含め、種類を表す記号を付けて表示 |
| ls -ld | ディレクトリ自身の詳細情報を表示 |
| ls -lR | サブディレクトリ内も再帰的に詳細表示 |
普段の確認では、ls -l、ls -la、ls -lhをよく使用します。
障害調査などで最近更新されたファイルを探すときは、ls -ltが便利です。ディレクトリ自身のアクセス権を調べたいときは、ls -ldを使用します。
一般ユーザーとrootユーザーで表示範囲が異なる場合
lsはファイルやディレクトリを変更するコマンドではありませんが、対象を参照するための権限が必要です。
一般ユーザーsuzukiで自分のホームディレクトリを表示する場合は、通常、問題なく確認できます。
suzuki@AlmaLinux:~$ ls -la一方、rootユーザーのホームディレクトリは、一般ユーザーから自由に参照できないように設定されています。rootユーザー自身であれば確認できます。
root@AlmaLinux:~# ls -la
合計 28
dr-xr-x---. 4 root root 180 8月 13 20:30 .
dr-xr-xr-x. 18 root root 235 8月 12 09:00 ..
-rw-------. 1 root root 1260 8月 13 20:28 .bash_history
-rw-r--r--. 1 root root 18 1月 15 2025 .bash_logout
-rw-------. 1 root root 1325 8月 12 09:15 anaconda-ks.cfg一般ユーザーとrootユーザーでは、次の点が異なります。
- ホームディレクトリの場所が異なる
- 所有しているファイルが異なる
- 参照できるディレクトリの範囲が異なる
- アクセス権によって表示できない場所がある
- 同じlsを実行しても表示結果が異なる
rootは広い範囲を参照できますが、通常の学習や日常操作では一般ユーザーsuzukiを使用します。
lsの表示結果を見るときの注意点
lsを使用するときは、次の点を意識すると表示結果を正しく読み取れます。
- 引数を省略するとカレントディレクトリが対象になる
- 通常のlsでは隠しファイルは表示されない
- 隠しファイルを確認するときは-aを使用する
- 詳しい情報を確認するときは-lを使用する
- -lのファイルサイズは通常バイト単位で表示される
- 読みやすいサイズ表示には-lと-hを組み合わせる
- ディレクトリに表示されるサイズは、中身の合計サイズではない
- ディレクトリ自身を確認するときは-dを使用する
- -tでは更新日時が新しいものから表示される
- -Fで追加される記号は実際のファイル名には含まれない
- -Rは表示量が非常に多くなる場合がある
- 参照権限がないディレクトリは内容を表示できない
- 表示順は言語や地域の設定によって変わる場合がある
lsは内容を参照するコマンドなので、実行するだけでファイルが削除されたり、名前が変わったりすることはありません。
ファイル操作を始める前には、まずlsで対象を確認する習慣を付けておくと、違うディレクトリのファイルを操作するミスを防ぎやすくなります。
