Linuxコマンド一覧

lsコマンド|ファイルとディレクトリを一覧表示する

__ __ _ _____
\ \ / /__| |_|_ _|__ _ __ _ __ ___
\ \ /\ / / _ \ '_ \| |/ _ \ '__| '_ ` _ \
\ V V / __/ |_) | | __/ | | | | | |
\_/\_/ \___|_.__/|_|\___|_| |_| |_| |_
 
ls を試すためのサンドボックスです。実機のファイルには影響しません。
user@webterm:~/project$
 

ls はいまいるディレクトリの中身を表示するコマンドです。-l や -a の意味、ls -l が出す各列の読み方を、ブラウザ上のターミナルでそのまま打ちながら確認できます。

最終更新: 2026-09-04

書式

ls [オプション] [ファイルやディレクトリ]

引数を付けずに ls だけ打つと、いまいるディレクトリの中身が表示されます。 ディレクトリ名を渡すと、そのディレクトリの中身が表示されます。

まず打ってみる

このページのターミナルは、サンプルのプロジェクトディレクトリから始まります。 ls と打つと、こう表示されます。

$ ls
docs/  logs/  package.json  README.md  src/

よく使うオプション

オプション意味
-l1行1件で、パーミッション・所有者・サイズ・更新日時まで表示する
-a. で始まる隠しファイルも表示する
-hサイズを 19K のような単位付きにする(-l と一緒に使う)
-Rサブディレクトリの中身まで再帰的に表示する
-t更新日時が新しい順に並べる
-Sサイズの大きい順に並べる
-r並び順を逆にする
-dディレクトリの中身ではなく、ディレクトリ自体の情報を表示する
-11行に1件だけ表示する(数字の1)

短いオプションはまとめて書けます。ls -l -als -la は同じ意味です。

実務での使いどころ

ls は「とりあえず打つ」コマンドですが、状況によって付けるオプションは決まっています。

知りたいこと打つもの見るところ
ログの最新はどれかls -ltr一番下の行が最後に更新されたファイル
容量を食っているのはどれかls -lhS上から順に大きいファイル
権限が足りているかls -l左端の rwx
設定ファイルはあるかls -a. で始まる行
中身の構成を把握したいls -Rディレクトリごとの見出し

ls -ltr は特によく使われます。 更新日時順(-t)を逆(-r)にするので、最後に更新されたファイルが一番下に来ます。 行数の多いディレクトリでも、スクロールせずに最新が見えます。

ls -l の出力の読み方

-l を付けると、1件につき1行で詳しい情報が出ます。

$ ls -l
total 20
drwxr-xr-x   2  user  user   4096  Sep  4 21:08  docs/
drwxr-xr-x   2  user  user   4096  Sep  4 21:08  logs/
-rw-r--r--   1  user  user     46  Sep  4 21:08  package.json
-rw-r--r--   1  user  user     36  Sep  4 21:08  README.md
drwxr-xr-x   2  user  user   4096  Sep  4 21:08  src/

package.json の行を左から順に見ていきます。

意味
種類とパーミッション-rw-r--r--先頭1文字が種類、残り9文字が権限
リンク数1そのファイルを指すハードリンクの数
所有者userファイルを持っているユーザー
グループuserファイルが属するグループ
サイズ46バイト数
更新日時Sep 4 21:08最後に内容が変わった日時
名前package.jsonファイル名

先頭の -rw-r--r-- は、さらに4つに割れます。

-   rw-      r--      r--
種類 所有者   グループ  その他

種類は - が通常ファイル、d がディレクトリ、l がシンボリックリンクです。 残りは3文字ずつの組で、読み取り r・書き込み w・実行 x が許可されていればその文字、されていなければ - が入ります。 つまり -rw-r--r-- は「通常ファイルで、所有者は読み書きでき、グループとその他は読み取りだけできる」という意味です。

1行目の total 20 は、そのディレクトリが使っているブロック数の合計です。 ファイルの数ではありません。

隠しファイルを表示する

. で始まるファイルは既定では出てきません。 設定ファイルはこの形式が多いので、探しているファイルが見えないときは -a を疑ってください。

$ ls
docs/  logs/  package.json  README.md  src/

$ ls -a
./  ../  .env  .gitignore  docs/  logs/  package.json  README.md  src/

./ は自分自身、../ は1つ上のディレクトリを指します。

サイズを読みやすくする

-l だけだとサイズはバイト数のままです。 -h を足すと単位が付きます。

$ ls -lh logs
total 20
-rw-r--r--   1  user  user    19K  Sep  4 21:09  app.log

大きいファイルを探す

-S を付けるとサイズの大きい順に並びます。 -l-h を足すと、どれがどれだけ大きいのかがそのまま読めます。

$ ls -lhS logs
total 20
-rw-r--r--   1  user  user    19K  Sep  4 21:09  app.log

中身をまとめて見る

-R を付けると、サブディレクトリの中まで降りて表示します。

$ ls -R
.:
docs/  logs/  package.json  README.md  src/

./docs:

./logs:
app.log

./src:
index.js  utils.js

つまずきやすいところ

存在しない名前を渡すとエラーになります。

$ ls nothing
ls: cannot access 'nothing': No such file or directory

打ち間違いか、いまいる場所が想定と違うかのどちらかです。 pwd で現在地を確かめてから打ち直してください。

ls -d は単体だとあまり役に立ちません。 ディレクトリ自体の情報を見るためのオプションなので、-l と組み合わせて ls -ld src のように使います。

並び順は名前順です。 -t を付ければ更新日時順になり、さらに -r を足せば古い順になります。 ls -ltr は、最後に更新したファイルが一番下に来るので、ログを見るときによく使われます。

手を動かして覚える

>_WEBTERM LEARN

WebTerm Learn|1つのコマンドから、使える状態へ

コマンドは単体で覚えるより、実際の作業の流れの中で使うほうが身につきます。順番に積み上げていくコースがあります。

コースを見る

関連するコマンド

cd / pwd / tree / stat / find

よくある質問

ls は何の略ですか?
list(一覧)の略です。ディレクトリの中にあるファイルとディレクトリの名前を並べて表示します。
隠しファイルが表示されないのはなぜですか?
名前が . で始まるファイルは、ls では既定で表示されないためです。.env や .gitignore のような設定ファイルがこれにあたります。-a を付けると表示されます。
ls -l の一番左の -rw-r--r-- は何ですか?
先頭1文字が種類(- は通常ファイル、d はディレクトリ、l はシンボリックリンク)で、残りの9文字がパーミッションです。所有者・グループ・その他の3人ぶんについて、読み取り r・書き込み w・実行 x が許可されていれば文字、されていなければ - が並びます。
ファイルサイズを読みやすく表示するには?
ls -lh を使います。-l だけだとバイト数がそのまま出ますが、-h を足すと 19K や 2.3M のように単位付きで表示されます。
Windows のコマンドプロンプトで ls が使えないのはなぜですか?
ls は Linux や macOS のコマンドで、Windows のコマンドプロンプトには入っていないためです。同じ役割のコマンドは dir です。PowerShell では ls が Get-ChildItem の別名として使えます。
ls の結果を1行に1件ずつ並べたいです。
ls -1 を使います。数字の1です。パイプで他のコマンドへ渡すときに扱いやすくなります。