LinuxやUbuntuのターミナルを開いて頻繁に入力するコマンドが「ls」です。
「現在のディレクトリにどんなファイルがあるか確認したい」「ドットから始まる隠しファイル(.bashrcなど)が見つからない」「ファイルのパーミッションやサイズ、更新日時を一覧でパッと把握したい」といった場面で必ず活躍します。
この記事では、「ls」コマンドの基本的な使い方から、実務で毎日使う鉄板オプションの組み合わせ、そして 「ls -l」で表示される詳細情報の読み解き方を解説します。
lsコマンドとは?
「ls」(Listの略)は、指定したディレクトリ内にあるファイルやディレクトリの一覧を表示するコマンドです。
WindowsのエクスプローラーやMacのFinderでフォルダを開き、中身を目視で確認する操作に相当します。
基本の使い方
「ls」コマンドは以下のように使用します。
ls [オプション] [ディレクトリ・ファイル名]
$ ls /usr/share/nginx/html/ 50x.html index.html
ディレクトリやファイル名を指定しない場合は、カレントディレクトリ(現在作業しているディレクトリ)内の一覧を表示します。
$ pwd /etc/nginx $ ls conf.d mime.types nginx.conf scgi_params fastcgi_params modules uwsgi_params
これだけは覚えたい!定番オプション一覧
「ls」を単体で実行するとファイル名やディレクトリ名だけがシンプルに表示されますが、オプションを組み合わせることで「更新日時」「ファイルサイズ」「隠しファイル」などの詳細情報を確認できるようになります。
| オプション | 役割と特徴 |
|---|---|
| -l | 権限(パーミッション)、所有者、サイズ、更新日時などを詳細に縦並び(ロングフォーマット)で表示 |
| -a | 「.」(カレント)や「..」(親)を含む、すべての隠しファイル・フォルダを表示 |
| -A | 「.」と「..」のみを除外し、その他の隠しファイルを表示(一覧をすっきりさせたい時に便利) |
| -h | ファイルサイズをバイト数ではなく、人間が直感的に読める単位(K, M, G等)で表示(「-l」とセットで使用) |
| -d | ディレクトリの中身を展開せず、ディレクトリ自身の情報を表示 |
| -t | ファイルの更新日時が新しい順に並び替えて表示 |
| -r | 並び順を反転(「-ltr」と組み合わせることで最新ファイルが一番下に表示される) |
| -F | ファイル種別を示す記号を末尾に付加(ディレクトリには「/」、実行可能ファイルには 「*」) |
| -S | ファイルサイズが大きい順にソートして表示 |
実務で役立つ定番の組み合わせパターン3選
最も標準的な詳細表示:ls -lah
「.」から始まる隠しファイルを含め、サイズの単位も見やすくし詳細情報を表示します。
$ ls -lah 合計 24K drwxr-x--- 2 tamohiko tamohiko 4.0K 6月 11 14:08 . drwxr-xr-x 4 root root 4.0K 10月 18 2024 .. -rw------- 1 tamohiko tamohiko 370 6月 12 15:14 .bash_history -rw-r--r-- 1 tamohiko tamohiko 220 10月 18 2024 .bash_logout -rw-r--r-- 1 tamohiko tamohiko 3.7K 10月 18 2024 .bashrc -rw-r--r-- 1 tamohiko tamohiko 807 10月 18 2024 .profile
最近更新されたファイルを探す: ls -ltr
システム障害やトラブルシューティング時、「/var/log」配下で「直近で出力されたログはどれか?」を調べるとき等に絶大な効果を発揮します。
「-t」(新しい順)と「-r」(逆順)を組み合わせることで、最も新しいファイルが画面の最下部(プロンプトの直前)に表示されるため、大量のファイルがあっても上にスクロールして探す手間が省けます。
$ ls -ltr /var/log/nginx/access.log* ### 中略 ### -rw-r----- 1 nginx adm 161 7月 29 17:44 /var/log/nginx/access.log.3.gz -rw-r----- 1 nginx adm 161 7月 31 15:42 /var/log/nginx/access.log.2.gz -rw-r----- 1 nginx adm 151 8月 7 11:04 /var/log/nginx/access.log.1 -rw-r----- 1 nginx adm 0 8月 8 09:28 /var/log/nginx/access.log
ディレクトリ自体の権限を調べる:ls -ld
通常、ディレクトリに対して「ls -l /usr/share/nginx/html」を実行すると「ディレクトリ内に格納されているファイル一覧」が表示されてしまいます。
「ディレクトリ自体のアクセス権限(パーミッション)や所有者」を確認したいときは「-d」オプションを使用します。
# ディレクトリの中身が表示されてしまう $ ls -l /usr/share/nginx/html/ 合計 716 -rw-r--r-- 1 root root 497 9月 2 20:17 50x.html -rw-r--r-- 1 root root 896 9月 2 20:17 index.html -rw-r--r-- 1 root root 724730 9月 2 2025 report.html # ディレクトリ自体の情報を表示できる $ ls -ld /usr/share/nginx/html/ drwxr-xr-x 2 root root 4096 9月 7 11:27 /usr/share/nginx/html/
「ls -l」の出力結果はどう読む?各項目を徹底解説
「ls -l」を実行したときの出力は、主に7つの項目で構成されています。
-rw-r--r-- 1 root root 896 Sep 2 20:17 index.html [ 1 ] [2] [3] [4] [ 5 ] [ 6 ] [ 7 ]
| 番号 | 項目名 | 例での表示 | 解説 |
|---|---|---|---|
| 1 | 種別とパーミッション | -rw-r--r-- | 先頭1文字がファイル種別(-: ファイル、d: ディレクトリ、l: シンボリックリンク)。 続く9文字が「所有者 / グループ / 他人」のアクセス権(読 r / 書 w / 実行 x)を表します。 |
| 2 | ハードリンク数 | 1 | このファイルの実体(inode)を参照しているリンクの数です。通常ファイルは 1、ディレクトリの場合は自身(.)とその配下にあるサブディレクトリからの親リンク(..)の数に応じて増えます。 |
| 3 | 所有者(Owner) | root | このファイルを所有しているユーザー名です。 |
| 4 | 所有グループ(Group) | root | このファイルが所属しているグループ名です。 |
| 5 | ファイルサイズ | 896 | ファイルのサイズです。「-h」を付けると「K」(キロ)や「M」(メガ)など人間に読みやすい単位に変換されます。(付けない場合はバイト単位の数値) |
| 6 | 最終更新日時 | Sep 2 20:17 | ファイルの内容が最後に更新された日時です。 |
| 7 | ファイル名 / ディレクトリ名 | index.html | ファイルやディレクトリの名前です。シンボリックリンクの場合は「リンク名 -> 参照先」と表示されます。 |
初心者が知っておくと得する実践Tips
超定番の短縮コマンド「ll」を活用する
UbuntuやDebianなど多くのLinux環境では、ユーザーの「~/.bashrc」内にあらかじめ「ll」というエイリアス(別名ショートカット)が登録されています。
$ grep ^alias .bashrc | grep ls alias ll='ls -alF' alias la='ls -A' alias l='ls -CF'
そのため「ll」と入力するだけで、「ls -alF」コマンドが実行されます。
$ ll total 724 drwxr-xr-x 2 root root 4096 Sep 7 11:27 ./ drwxr-xr-x 3 root root 4096 Jul 16 2025 ../ -rw-r--r-- 1 root root 497 Sep 2 20:17 50x.html -rw-r--r-- 1 root root 896 Sep 2 20:17 index.html -rw-r--r-- 1 root root 724730 Sep 2 2025 report.html
毎回「ls -alF」「ls -la」と打ち込む手間が省けるため、ターミナル作業時の定番操作として重宝します。
ワイルドカード(*)で特定のファイルだけを絞り込む
ファイル数が膨大なディレクトリでは、アスタリスク「*」を使ったパターンマッチングで目的のファイルだけを抽出できます。
以下は、「syslog」から始まるファイルだけを表示した例です。
$ ls -lh /var/log/syslog* -rw-r----- 1 syslog adm 140M Sep 8 17:15 /var/log/syslog -rw-r----- 1 syslog adm 362M Sep 6 00:00 /var/log/syslog.1 -rw-r----- 1 syslog adm 17M Aug 30 00:00 /var/log/syslog.2.gz -rw-r----- 1 syslog adm 17M Aug 23 00:00 /var/log/syslog.3.gz -rw-r----- 1 syslog adm 17M Aug 16 00:00 /var/log/syslog.4.gz
ファイルサイズが大きい順に並べる:ls -lhS
ディスクの容量を節約したいときや、肥大化したログや一時ファイルを探すには「-S」(大文字)オプションを使用すると、ファイルサイズが大きい順にソートされます。
さらに「head」コマンドとパイプ(|)で繋げることで、「サイズが大きいファイル上位5件」などを素早く抽出できます。
$ ls -lhS /var/log/ | head -n 6 total 631M -rw-r----- 1 syslog adm 362M Sep 6 00:00 syslog.1 -rw-r----- 1 syslog adm 174M Sep 9 08:53 syslog -rw-r----- 1 syslog adm 17M Aug 16 00:00 syslog.4.gz -rw-r----- 1 syslog adm 17M Aug 30 00:00 syslog.2.gz -rw-r----- 1 syslog adm 17M Aug 23 00:00 syslog.3.gz
※先頭の total 631M も1行としてカウントされるため、上位5件を抽出したい場合は「head -n 6」と指定します。
まとめ
- 基本の確認には ls -lah(隠しファイル表示 + 人間が読めるサイズ表記)
- ログ調査などのトラブルシューティングには ls -ltr(最新ファイルが一番下に表示)
- ディレクトリ自体の属性確認には ls -ld
- 肥大化したファイルの特定には ls -lhS と head の組み合わせ
- 普段の操作短縮にはエイリアス ll をフル活用

コメント