Linuxコマンドの基礎:lsコマンドでファイルとディレクトリをリスト表示する方法

コマンドリファレンス

Linuxのコマンドラインを扱う際、ファイルやディレクトリを確認することは非常に重要です。多くのLinuxユーザーにとって、lsコマンドはその基本的なツールの一つと言えるでしょう。このコマンドを使うことで、シェル上で手軽にディレクトリの内容を確認でき、ファイル操作をスムーズに行うことが可能になります。今回は、lsコマンドの基礎から応用まで、その使用方法について詳しく解説します。

ls コマンド 頻出パターン早見表

まずはよく使う組み合わせを一覧にしました。目的のコマンドがすぐ見つからない場合は、ここから該当の見出しへ進んでください。

コマンド 用途
ls カレントディレクトリの一覧表示
ls -l 権限・所有者・サイズ・更新日時を含む詳細表示
ls -a 隠しファイルも含めて表示
ls -la 詳細表示+隠しファイルの組み合わせ
ls -lh サイズをKB/MB/GBで見やすく表示
ls -lt 更新日時が新しい順に並べ替え
ls -ltr 更新日時が古い順(逆順)に並べ替え
ls -R サブディレクトリも再帰的に表示
ls -F ディレクトリや実行ファイルを記号で識別
ls -d */ ディレクトリのみを表示

ls コマンドの基本構文

lsは「list」の略で、指定したディレクトリの内容をリスト表示するコマンドです。何もオプションを指定しない場合は、カレントディレクトリのファイルとディレクトリ名を一覧表示します。

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

ディレクトリを指定すれば、そのディレクトリの中身を確認できます。

ls /var/log

-l オプションで詳細表示:各列の読み方

-lオプションを使用すると、ファイルの権限や所有者、サイズ、更新日時などを含む詳細な一覧を取得できます。

ls -l

出力例は以下の通りです。

-rwxr-xr-x  1 user group  4096 Jul 10 09:15 script.sh
drwxr-xr-x  2 user group  4096 Jul  9 18:02 public_html

各列の意味は次の表の通りです。

意味
種別+権限 -rwxr-xr-x 先頭1文字がファイル種別(-=ファイル、d=ディレクトリ、l=シンボリックリンク)。残り9文字が所有者・グループ・その他の順でrwx(読み取り/書き込み/実行)権限
リンク数 1 ハードリンクの数
所有者 user ファイルの所有ユーザー
グループ group 所有グループ
サイズ 4096 バイト単位のサイズ(-hで単位変換可能)
更新日時 Jul 10 09:15 最終更新日時
名前 script.sh ファイル/ディレクトリ名

権限部分の9文字は、3文字ずつ「所有者」「グループ」「その他」の順でr(読み取り)・w(書き込み)・x(実行)を表します。権限を数値や記号で変更したい場合は、chmodコマンドの使い方|パーミッション変更コマンドの使い方と数値一覧もあわせて確認してください。

隠しファイルを表示する(-a / -A)

Linuxでは、ファイル名がドット(.)から始まるものは隠しファイルとして扱われます。これらを表示するには-a--all)オプションを使用します。

ls -a

-aはカレントディレクトリを示す.と親ディレクトリを示す..も含めて表示します。この2つを除いて隠しファイルだけを見たい場合は-A--almost-all)を使います。

ls -A

詳細表示と組み合わせる場合はls -laとすれば、権限や更新日時つきで隠しファイルも確認できます。.bashrc.sshなどの設定ファイル・ディレクトリを探すときによく使う組み合わせです。

ls -la ~

ファイルサイズを見やすくする(-h)

-h--human-readable)オプションは-lと組み合わせて使い、ファイルサイズをKB・MB・GBなど人間に読みやすい単位で表示します。

ls -lh

出力例:

-rw-r--r-- 1 user group 1.2K Jul 10 09:15 memo.txt
-rw-r--r-- 1 user group  15M Jul  9 20:41 backup.tar.gz

バイト数を目視で換算する必要がなくなるため、大きなファイルの特定やストレージ管理に役立ちます。ディレクトリ全体の使用量を集計したい場合はlsではなくdf・duコマンドでディスク使用量をチェックする基本が向いています。

更新日時順に並べ替える(-t / -r / -ltr)

-tオプションを使うと、更新日時が新しい順にファイルを並べ替えます。

ls -lt

最近変更されたファイルをすぐに確認できるため、デバッグや作業ログの追跡に役立ちます。並び順を逆にしたい場合は-r--reverse)を追加します。

ls -lrt

あるいは-ltrのように順番を変えても同じ結果になります。-t-rを組み合わせると更新日時が古い順(最新のファイルが一番下)に並ぶため、ログファイルの末尾に近い最新行を確認したいときに便利です。

ls -ltr /var/log

ディレクトリ構造を再帰的に確認する(-R)

大きなプロジェクトや大量のファイルを扱う際には、ディレクトリ構造全体を確認する必要があります。-R--recursive)オプションを使うと、サブディレクトリの中身も含めて再帰的に一覧表示します。

ls -R

出力が長くなりやすいため、階層構造を見やすく把握したい場合はtreeコマンドの使い方|READMEに使える表示術【Linux/Mac】を使う方法もあります。

ファイルのみ・ディレクトリのみを表示する

lsコマンドは標準ではファイルとディレクトリを区別しません。用途別に絞り込みたい場合は、以下のような書き方が代表的です。

目的 コマンド例
ディレクトリのみ表示 ls -d */
ファイルのみ表示(種別を目視で判別) ls -F | grep -v /
ファイルのみ表示(find利用) find . -maxdepth 1 -type f
ディレクトリのみ表示(find利用) find . -maxdepth 1 -type d

-Fオプションを使うと、ディレクトリには/、実行ファイルには*などのマークが付き、種別を視覚的に見分けられます。

ls -F

名前や更新日時、サイズなど条件を指定して絞り込みたい場合はfindコマンド入門と応用|ファイル検索・条件絞り込み・高速化の方法のほうが柔軟に対応できます。

GNU/Linux と macOS でのオプションの違い

lsコマンドはUNIX系OSに標準搭載されていますが、Linuxで使われるGNU coreutils版とmacOS標準のBSD版ではオプションに差があります。

項目 GNU/Linux macOS(標準)
色分け表示 --color=auto -G(またはCLICOLOR=1
サイズを読みやすく -h -h(同じ)
長いオプション名 --allなど利用可 基本的に長いオプション名は非対応
ディレクトリを先頭に --group-directories-first 非対応

macOSでGNU版のlsを使いたい場合は、Homebrewでcoreutilsをインストールし、glsコマンドとして利用できます。

brew install coreutils
gls --color=auto -lh

出力をカスタマイズする(–color)

既定では、lsによる出力はファイルタイプに応じて異なる色で表示されることがありますが、明示的にカラフルな出力を設定することも可能です(GNU/Linuxの場合)。

ls --color=auto

これにより、ファイルタイプごとに色分けされたリストが表示され、特に長いリストの中で視認性が向上します。ディストリビューションによっては、alias ls='ls --color=auto'のようにエイリアス設定済みの場合もあります。

ls コマンドとよくあるエラー

状況 メッセージ例 対処
存在しないパスを指定 ls: cannot access 'notfound': No such file or directory パスの綴りや存在を確認する
権限がない ls: cannot open directory '...': Permission denied 所有者・権限をls -ldで確認し、chmodsudoで対処する

まとめ

lsコマンドはLinuxユーザーの基本的なツールの一つであり、その機能は強力です。-la-lh-lt-ltrなどの組み合わせを覚えておけば、隠しファイルの確認からサイズ・更新日時での並べ替えまで、日常の作業を効率よくこなせるようになります。まずは冒頭の早見表から必要なオプションを見つけ、慣れてきたら権限の読み方やGNU/macOSの違いも押さえていきましょう。

権限の変更はchmod、条件を指定した検索はfind、階層表示はtree、ディスク使用量の確認はduと、目的に応じて使い分けてください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント