この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:10
ページ更新者:guest
更新日時:2026-06-11 07:10:02

タイトル: ls ファイル/ディレクトリ一覧表示
SEOタイトル: Linux ls コマンド完全ガイド (オプション/拡張)

この記事の要点
  • ls は Linux / Unix で最も使うコマンド。ディレクトリ内のファイル一覧表示
  • 定番: ls -la(詳細 + 隠しファイル)、ls -lh(人間可読サイズ)、ls -ltr(時刻順・古い順)
  • オプション組合せ: -l 詳細 / -a 隠し / -h サイズ単位 / -S サイズ順 / -t 時刻順 / -r 逆順 / -R 再帰
  • 多くのシェルで ll = ls -alF がエイリアス済。alias ll で確認
  • 最近のモダン代替: eza(旧 exa の後継)/ lsd。Git 状態 / アイコン / ツリー表示

ls の基本

# カレントディレクトリのファイル一覧(横並び)
ls

# 詳細表示(パーミッション / 所有者 / サイズ / 更新日時)
ls -l

# 隠しファイルも表示(ドット始まり)
ls -a
ls -A     # . と .. を除く隠しファイル

# 両方の合わせ技(最頻出)
ls -la
ls -lA

# 人間可読サイズ(1.5K, 234M, 3.2G)
ls -lh

# 詳細 + 人間可読 + 隠し
ls -lah

# 全展開してファイル/ディレクトリ識別記号
ls -F     # / @ * = > | を末尾に付ける(ディレクトリ/シンボリックリンク等)

主要オプション一覧

オプション意味
-llong 形式(詳細)
-a / -A隠しファイル表示(A は . と .. を除く)
-hサイズを K/M/G 単位で表示
-Sサイズ順(大きい順)
-t更新時刻順(新しい順)
-r逆順
-R再帰的にサブディレクトリも表示
-dディレクトリ自身の情報(中身ではなく)
-iinode 番号表示
-F種類記号付与(/ @ * = > |)
--color=auto色分け表示(多くのディストロでデフォルト有効)
-11 行 1 ファイルで出力(スクリプト向け)
-X拡張子順
-vバージョン番号でソート(自然順)
--full-time秒まで含む時刻表示
-ZSELinux コンテキスト表示

ls -l の出力を読む

$ ls -lh /var/log/
-rw-r--r-- 1 root  syslog  12K Jun 10 08:30 auth.log
drwxr-xr-x 2 root  root   4.0K Jun  1 00:00 nginx/
lrwxrwxrwx 1 root  root     14 May 20 12:00 mail.log -> /var/log/mail/
^         ^   ^      ^      ^     ^         ^
|         |   |      |      |     |         + 名前
|         |   |      |      |     + 更新日時
|         |   |      |      + サイズ
|         |   |      + 所有グループ
|         |   + 所有ユーザ
|         + ハードリンク数
+ 種類とパーミッション

種類:
- : 通常ファイル
d : ディレクトリ
l : シンボリックリンク
c : キャラクタデバイス
b : ブロックデバイス
s : ソケット
p : 名前付きパイプ (FIFO)

パーミッション (rwxrwxrwx):
所有者 / グループ / その他、それぞれ read / write / execute

よく使う組み合わせ

# サイズ順(大きい順)
ls -lShr      # 小さい順
ls -lSh       # 大きい順

# 時刻順
ls -ltr       # 古い順(最新が下に)→ 編集中ログの確認に便利
ls -lt        # 新しい順(最新が上)

# 拡張子順
ls -lX

# サブディレクトリ再帰
ls -R

# ディレクトリ自身の情報
ls -ld /etc
# → drwxr-xr-x 130 root root 12288 Jun 10 09:00 /etc

# 巨大ディレクトリで件数だけ知りたい
ls -1 | wc -l        # ファイル数
ls -1A | wc -l       # 隠し含む

シェルエイリアス

ほとんどの Linux ディストロで以下のエイリアスが初期設定されています:

# 確認
alias | grep -E "^alias ll|^alias la|^alias l="

# 典型的な設定 (~/.bashrc)
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# 色付きを強制
alias ls='ls --color=auto'

# 反映
source ~/.bashrc

モダンな代替コマンド

近年は eza(旧 exa)や lsd といった Rust 製の高機能 ls がよく使われます。Git 状態 / ファイルアイコン / ツリー表示が標準装備:

# eza(exa の後継、メンテ続行中)
sudo apt install eza        # Ubuntu 24.04+
brew install eza             # macOS

eza -la --git --icons        # Git 状態とアイコン
eza --tree --level=2         # ツリー表示
eza -la --sort=modified -r   # 時刻順

# lsd
brew install lsd
lsd -la
lsd --tree

# ls をエイリアスで置き換えるのもアリ
alias ls='eza --icons'
alias ll='eza -la --git --icons'
alias tree='eza --tree --icons'

Windows の dir / Get-ChildItem との比較

用途Linux lscmd dirPowerShell
基本表示lsdirGet-ChildItem / ls
詳細ls -ldir(既定)ls \| Format-List
隠しls -adir /als -Force
再帰ls -Rdir /sls -Recurse
サイズ順ls -lSdir /o-sls \| Sort-Object Length

困ったときのテクニック

# 巨大ディレクトリで遅い
ls -1 | head             # 最初の数件だけ
\ls                       # alias を無効化して素の ls

# ワイルドカードがエラー(Argument list too long)
ls *.log                  # ❌ 大量で失敗
find . -name "*.log"      # ✅ find を使う
printf '%s\n' *.log       # ✅ shell builtin

# パーミッションを 8 進数で見たい
ls -l                     # → -rw-r--r-- だが
stat -c '%a %n' *         # 644 ファイル名 で出力

# 最終アクセス時刻でソート
ls -lu                    # access time
ls -lc                    # change time (inode 変更)

FAQ

Q: 色付き表示にならない
A: alias ls='ls --color=auto'~/.bashrc に追加。配色は LS_COLORS 環境変数で調整。dircolors コマンドで生成可能。

Q: 日本語ファイル名で文字化けする
A: ロケール設定 LANG=ja_JP.UTF-8 を確認。locale コマンドで現在値を表示。ls -b で非印字文字をエスケープ表示。

Q: スクリプトで ls の結果をパースしたい
A: ls はパース禁止(スペース / 改行入りファイル名で壊れる)。find -print0 | xargs -0for f in *.txt; do ...; done を使うこと。

Q: シンボリックリンク先のディレクトリの中身を見たい
A: ls -L でリンク追跡。ls -H はコマンドラインで指定されたリンクのみ追跡。

関連

  • find — 再帰的検索 + 条件フィルタ
  • tree — ツリー表示専用
  • du — ディレクトリ容量集計
  • stat — ファイル詳細メタ情報