「-lと-aは知っているけど、他のオプションはほとんど使ったことがない」
Linuxを使い始めたばかりの方から、実務でサーバーを運用している方まで、lsコマンドのオプションで悩む場面は意外と多いものです。
この記事では、
ls コマンドの主要オプションを用途別に整理して解説します。基本の
-l、-a から、実務で重宝する -h、-R、-F、-i、-d まで、実行例付きで一通りカバーしました。・lsコマンドのオプションを用途別に一覧で確認できる
・-l, -a, -h など実務でよく使うオプションを実行例付きで解説
・ディレクトリ確認(-d)・再帰表示(-R)・タイプ識別(-F)の使い方
・ls -l の出力結果(パーミッション・所有者・サイズ)の正しい読み方
・実務でよく使うオプション組み合わせパターン(ls -la, ls -lh など)
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
lsコマンドとは
ls コマンドは、ディレクトリ内のファイルやディレクトリの一覧を表示するLinuxの基本コマンドです。「自分が今いるディレクトリに何があるのか」を確認する、最も基本的な操作になります。
オプションを組み合わせることで、ファイルのパーミッション、サイズ、更新日時など、さまざまな情報を確認できます。
lsコマンドの書式
ls [オプション] [パス]
lsコマンドのオプション一覧
まずは主要オプションを一覧で確認しましょう。各オプションの詳しい使い方は、次のセクション以降で実行例付きで解説します。| コマンド例 | 意味 |
|---|---|
ls -l |
ファイルの詳細情報(パーミッション、所有者、サイズ、日時)を表示する |
ls -a |
隠しファイル(ドットファイル)も含めてすべて表示する |
ls -A |
隠しファイルを表示するが、.(カレント)と..(親)は除外する |
ls -lh |
ファイルサイズをK、M、Gなど人間が読みやすい単位で表示する |
ls -R |
ディレクトリ内を再帰的(サブディレクトリも含めて)に表示する |
ls -ld パス |
ディレクトリそのものの情報を表示する(中身を展開しない) |
ls -F |
ファイル名の末尾にタイプ識別子(/、@、*)を付けて表示する |
ls -i |
iノード番号を表示する |
ls -1 |
1行に1ファイルずつ表示する |
ls -s |
ファイルのブロック数を表示する |
ls -lu |
最終アクセス日時を表示する |
ls -m |
ファイルをカンマ区切りで横に並べて表示する |
ls -Q |
ファイル名をダブルクォートで囲んで表示する |
ls -lt |
更新日時が新しい順にソートして表示する |
ls -lhS |
ファイルサイズが大きい順にソートして表示する |
ls -lr |
表示順を逆順にする(他のソートオプションと組み合わせて使う) |
ls -lX |
拡張子のアルファベット順にソートして表示する |
ファイルの詳細情報を表示する(-l)
-l(long format)は、lsコマンドで最もよく使われるオプションです。ファイルのパーミッション、所有者、グループ、サイズ、更新日時をまとめて確認できます。
$ ls -l 合計 0 -rw-rw-r-- 1 pakira pakira 0 12月 2 14:20 data.dat -rw-rw-r-- 1 pakira pakira 0 12月 2 14:21 out.txt -rw-rw-r-- 1 pakira pakira 0 12月 2 14:22 test.dat -rw-rw-r-- 1 pakira pakira 0 12月 2 14:23 tmp.dat
・1列目(-rw-rw-r--):ファイルタイプとパーミッション
・2列目(1):ハードリンク数
・3列目(pakira):所有者
・4列目(pakira):所有グループ
・5列目(0):ファイルサイズ(バイト単位)
・6~8列目:最終更新日時
・9列目:ファイル名
隠しファイルも表示する(-a / -A)
Linuxでは、ファイル名の先頭がドット(.)で始まるファイルは「隠しファイル(ドットファイル)」として扱われ、通常のls では表示されません。.bashrc や .bash_profile などの設定ファイルを確認したい場合は、-a オプションを使います。1. すべての隠しファイルを表示する(-a)
$ ls -a . .. .linux.txt data.dat out.txt test.dat tmp.dat
.(カレントディレクトリ)と ..(親ディレクトリ)も表示される点に注意してください。実行しているディレクトリによっては、
.bash_history や .bash_profile なども表示されますが、これらはシステムが事前に用意しているファイルです。2. カレントと親ディレクトリを除外して表示する(-A)
-A(Almost all)を使うと、. と .. を除いた隠しファイルだけが表示されます。スクリプトでファイル一覧を取得する場合など、余計なエントリが不要な場面で便利です。$ ls -A .linux.txt data.dat out.txt test.dat tmp.dat
ファイルサイズを見やすい単位で表示する(-lh)
-l だけだとファイルサイズがバイト単位の数値で表示されるため、巨大なファイルだと桁数が多くなり読みづらくなります。-h(human-readable)を -l と組み合わせると、K(キロ)、M(メガ)、G(ギガ)といった単位で表示されます。$ ls -lh 合計 1002M -rw-rw-r-- 1 pakira pakira 1000M 12月 11 16:41 1G.dummy -rw-rw-r-- 1 pakira pakira 1.0K 12月 11 16:41 1K.dummy -rw-rw-r-- 1 pakira pakira 1.0M 12月 11 16:41 1M.dummy
ls -lh の形で使うことが非常に多いです。ディレクトリそのものの情報を表示する(-d)
ls にディレクトリのパスを指定すると、通常はそのディレクトリの「中身」が表示されます。ディレクトリ自体のパーミッションや所有者を確認したい場合は、
-d オプションを付けてください。$ ls -ld /home drwxr-xr-x. 5 root root 46 5月 13 2020 /home
d になっていることから、これがディレクトリであると判別できます。Webサーバーの公開ディレクトリのパーミッション確認(
ls -ld /var/www/html)など、実務でもよく使います。ディレクトリ内を再帰的に表示する(-R)
-R(Recursive)を付けると、指定したディレクトリの中身だけでなく、サブディレクトリの中身も含めてすべて表示します。$ ls -R /home/ /home/: pakira /home/pakira: data.dat out.txt test.dat tmp.dat
-l と組み合わせれば、詳細情報付きで再帰表示できます。$ ls -lR /home/ /home/: 合計 0 drwx------. 4 pakira pakira 226 12月 9 17:10 pakira /home/pakira: 合計 0 -rw-rw-r-- 1 pakira pakira 0 12月 2 14:20 data.dat -rw-rw-r-- 1 pakira pakira 0 12月 2 14:21 out.txt -rw-rw-r-- 1 pakira pakira 0 12月 2 14:22 test.dat -rw-rw-r-- 1 pakira pakira 0 12月 2 14:23 tmp.dat
find コマンドのほうが適しています。タイプ識別子を付けて表示する(-F)
-F オプションを付けると、ファイル名の末尾にファイルの種類を示す記号(タイプ識別子)が追加されます。・/(スラッシュ):ディレクトリ
・@(アットマーク):シンボリックリンク
・*(アスタリスク):実行可能ファイル
ディレクトリだけにタイプ識別子を付けたい場合は、
-p を使います。$ ls -F / bin@ dev/ home/ lib64@ mnt/ proc/ run/ srv/ tmp/ var/ boot/ etc/ lib@ media/ opt/ root/ sbin@ sys/ usr/
bin@ はシンボリックリンク、dev/ はディレクトリであることが一目で分かります。iノード番号を表示する(-i)
-i オプションを付けると、各ファイルのiノード番号がファイル名の前に表示されます。iノード番号はLinuxのファイルシステムがファイルを管理するために割り当てる一意の番号です。
ハードリンクの確認や、同じファイルが複数の名前で参照されていないかの調査に使います。
$ ls -i / 676022 bin 16787862 home 50333311 mnt 12932 run 33576486 tmp 128 boot 1449 lib 152 opt 151 sbin 33575067 usr 3 dev 149 lib64 1 proc 16787863 srv 50331777 var 16777345 etc 33576485 media 33575041 root 1 sys
1行1ファイルで表示する(-1)
-1(数字の1)オプションを付けると、1行に1ファイルずつ表示します。ファイル名の一覧をテキストファイルにリダイレクトしたり、シェルスクリプトでループ処理に渡す場合に便利です。
$ ls -1 data.dat out.txt test.dat tmp.dat
その他の便利なオプション
ここまで紹介したオプション以外にも、場面によって役立つオプションがあります。1. ファイルのブロック数を表示する(-s)
-s オプションを付けると、各ファイルが使用しているディスクブロック数を表示します。$ ls -s / 合計 28 0 bin 0 dev 0 home 0 lib64 0 mnt 0 proc 0 run 0 srv 4 tmp 4 var 4 boot 12 etc 0 lib 0 media 0 opt 4 root 0 sbin 0 sys 0 usr
2. 最終アクセス日時を表示する(-lu)
-u オプションを -l と併用すると、ファイルの最終更新日時ではなく最終アクセス日時が表示されます。「このファイルは最後にいつ読まれたのか」を調べたい場合に使います。
$ ls -lu 合計 0 -rw-rw-r-- 1 pakira pakira 0 12月 14 11:25 data.dat -rw-rw-r-- 1 pakira pakira 0 12月 14 11:25 out.txt -rw-rw-r-- 1 pakira pakira 0 12月 14 11:35 test.dat -rw-rw-r-- 1 pakira pakira 0 12月 14 11:25 tmp.dat
3. カンマ区切りで表示する(-m)
-m オプションを使うと、ファイル名をカンマ区切りで横に並べて表示します。CSV形式でファイル名が必要な場合に便利です。$ ls -m data.dat, out.txt, test.dat, tmp.dat
4. ダブルクォートで囲んで表示する(-Q)
-Q オプションを付けると、ファイル名がダブルクォート(")で囲まれて表示されます。ファイル名にスペースが含まれるファイルを扱う際に、コピペでそのままコマンドに渡せるため便利です。$ ls -Q / "bin" "dev" "home" "lib64" "mnt" "proc" "run" "srv" "tmp" "var" "boot" "etc" "lib" "media" "opt" "root" "sbin" "sys" "usr"
ソート関連のオプション
lsコマンドには、表示順を並び替えるソート系のオプションも用意されています。ここでは概要だけ紹介します。
| やりたいこと | コマンド例 |
|---|---|
| 更新日時が新しい順に並べる | ls -lt |
| 更新日時が古い順に並べる(最新が一番下) | ls -lrt |
| ファイルサイズが大きい順に並べる | ls -lhS |
| 拡張子ごとにまとめて並べる | ls -lX |
| 表示順を逆順にする | ls -lr |
関連記事:lsコマンドの並び替え(ソート)方法|時間順・サイズ順など現場の必須オプション
実務でよく使うオプションの組み合わせ
実際の現場では、オプションを単独で使うよりも組み合わせて使うケースがほとんどです。覚えておくと作業効率が上がる組み合わせパターンを紹介します。
1. 隠しファイルも含めた詳細一覧(ls -la)
サーバーにログインして最初に実行することが多いコマンドです。.bashrc や .ssh ディレクトリなど、設定ファイルの確認に使います。$ ls -la
2. 読みやすい単位で詳細表示(ls -lh)
ログファイルやダンプファイルの容量を確認する定番のコマンドです。root権限が必要なディレクトリではsudo を付けて実行してください。# ls -lh /var/log/
3. ディレクトリのパーミッション確認(ls -ld)
Webサーバーの公開ディレクトリや、特定のディレクトリに正しい権限が設定されているかを確認する場面で使います。$ ls -ld /var/www/html
4. ファイルの種類を一目で判別する(ls -lF)
シンボリックリンクが正しく張られているかの確認など、ファイルの種類を素早く見分けたい場合に使います。$ ls -lF /usr/bin/
ls -l の出力結果の読み方
lsコマンドを使いこなすうえで、-l オプションの出力結果を正しく読み取れることが重要です。1行の出力を分解して解説します。
-rw-rw-r-- 1 pakira pakira 1048576 12月 11 16:48 1M.dummy
| 位置 | 値の例 | 意味 |
|---|---|---|
| 1文字目 | - |
ファイルタイプ(-=通常ファイル、d=ディレクトリ、l=シンボリックリンク) |
| 2~4文字目 | rw- |
所有者のパーミッション(読み取り・書き込み・実行) |
| 5~7文字目 | rw- |
グループのパーミッション |
| 8~10文字目 | r-- |
その他のユーザーのパーミッション |
| リンク数 | 1 |
ハードリンクの数 |
| 所有者 | pakira |
ファイルの所有ユーザー |
| グループ | pakira |
ファイルの所有グループ |
| サイズ | 1048576 |
ファイルサイズ(バイト単位) |
| 日時 | 12月 11 16:48 |
最終更新日時 |
| ファイル名 | 1M.dummy |
ファイル名またはディレクトリ名 |
トラブルシュート
「Permission denied」でファイル一覧が表示されない
ディレクトリに対する読み取り権限(r)がないと、ls を実行しても「Permission denied」エラーが出ます。$ ls /root/ ls: '/root/' にアクセスできません: 許可がありません
sudo ls /root/ のようにroot権限で実行するか、ディレクトリのパーミッションを ls -ld で確認してください。ファイル名にスペースや特殊文字が含まれている場合
ファイル名にスペースが含まれていると、ls の出力をそのままコピペして別のコマンドに渡した際にエラーになることがあります。-Q オプションでダブルクォート付きの出力を取得するか、ls -1 で1行1ファイル表示にして対処してください。本記事のまとめ
| やりたいこと | コマンド例 |
|---|---|
| ファイルの詳細情報を表示する | ls -l |
| 隠しファイルも含めて表示する | ls -la |
| ファイルサイズを見やすい単位で表示する | ls -lh |
| ディレクトリそのものの情報を確認する | ls -ld /home |
| サブディレクトリも含めて再帰的に表示する | ls -lR /home/ |
| ファイルの種類を識別子付きで表示する | ls -lF |
| iノード番号を表示する | ls -i |
| 1行に1ファイルずつ表示する | ls -1 |
| 最終アクセス日時を表示する | ls -lu |
| ソート(時間順・サイズ順など)で並び替える | ソート記事を参照 |
コマンド操作で、余計な時間を使っていませんか?
便利なオプションを知らないままサーバーを運用していると、本来1分で終わるはずの確認作業に何時間もかかってしまいます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます