InfraAcademy

InfraAcademy Blog

【Linux】lsコマンドの使い方解説【ファイルやディレクトリの情報を表示してみよう】

| #Linux #コマンド

こんにちは、フルスタックエンジニアのryuです。

今回の記事は、lsコマンドについて解説します。lsコマンドとは、ファイルやディレクトリの一覧を表示するコマンドです。

lsコマンドの使い方やオプションなどを詳しく解説します。Linux初心者に必見の内容です。

【Linux】lsコマンドの使い方解説

lsコマンドはどうやって使えばいいの?と疑問に思っていませんか。Linuxを学び始めた人が最初に覚えることになる、いちばん基本のコマンドがlsです。

今回の記事では、lsコマンドの基本的な使い方とオプションを解説します。さらに、初心者がつまずきやすい ls -l の出力の読み方も、1列ずつ丁寧に見ていきます。

では、早速解説していきます!

lsコマンドとは?基本の書式をおさえよう

lsコマンドは、指定した場所にあるファイルやディレクトリの一覧を表示するコマンドです。書式は ls [オプション] [ファイル・ディレクトリ] で、オプションと引数はどちらも省略できます。

引数を省略した場合は、カレントディレクトリの中身が表示されます。カレントディレクトリとは今あなたがいる場所のことで、カレントディレクトリを表示するpwdコマンドで確認できます。

Linuxのサーバーには画面(GUI)が無いことが多く、フォルダの中身をマウス操作で眺めることができません。その代わりに目の役割を果たしてくれるのが、lsコマンドというわけですね。

lsコマンドの基本的な使い方

まず、lsコマンドの基本的な使い方について解説します。ターミナルを開いて、ls と入力してEnterキーを押してみましょう。

コマンドを入力すると、現在のディレクトリ(カレントディレクトリ)にあるファイルを表示してくれます。以下の例では、a.txt と b.txt があることが分かります。

何も表示されない場合は、ディレクトリが空というだけなので心配いりません。新しい空のファイルを作成するtouchコマンドでファイルを作ってから、もう一度実行してみましょう。

touch a.txt
touch b.txt
ls
→a.txt b.txt

このように、lsコマンドを使用すると、ファイルの一覧を表示することができます。オプションを使用すると、さらに詳細の情報を得ることができるので、オプションについても解説します。

パスを指定して別のディレクトリを表示する

lsコマンドは、カレントディレクトリ以外の場所も表示できます。引数に、見たいディレクトリのパスを渡すだけです。

たとえば ls /etc と実行すれば、移動せずに /etc ディレクトリの中身を確認できます。カレントディレクトリを移動するcdコマンドでいちいち移動しなくて済むので、作業のスピードが上がりますよ。

引数にファイル名を指定した場合は、そのファイルの存在確認になります。存在しない名前を指定すると、No such file or directory というエラーが返ってきます。

lsコマンドのオプション一覧

lsコマンドの真価は、オプションを付けたときに発揮されます。表示する情報量や並び順を、目的に合わせて自由に切り替えられるからです。

lsコマンドのオプションは以下のようなものがあります。

オプション 説明
-a 「.」から始まるファイルを表示する(隠しファイルの表示)
-A 「.」から始まるファイルを表示するが、カレントディレクトリと親ディレクトリは表示しない
-d ディレクトリ自身の情報を表示する
-F ファイルの種類も表示
-i iノード番号を表示する
-l ファイルの詳細な情報を表示する
-t 日付順に表示する
-h 単位付きで表示する

こちらの表は、以下の参考書から引用しております。

並び替えや表示形式を変えるオプション

先ほどの表に加えて、並び順や表示形式を変えるオプションも覚えておくと便利です。こちらも表にまとめました。

オプション 説明
-r 並び順を逆にして表示する
-S ファイルサイズの大きい順に表示する
-X 拡張子のアルファベット順に表示する
-R サブディレクトリの中身まで再帰的に表示する
-1 1行につき1件ずつ表示する
--full-time 秒単位までの詳細な日時で表示する

すべてを暗記する必要はありません。まずは -l-a-t の3つを使いこなせれば、日常の操作で困ることはほとんどないですよ。

ちなみに -F を付けると、ディレクトリには /、実行可能ファイルには *、シンボリックリンクには @ という記号が名前の後ろに付きます。ファイルの種類をひと目で見分けたいときに便利です。

では、実際にオプションを使ってlsコマンドの挙動がどのように変わるのか試してみましょう!

lsコマンドのオプションの使い方解説

ここからは、lsコマンドのオプションの使い方について解説します。lsコマンドで良く使うものをご紹介します。

ls -laでファイルの詳細を表示

まずは、-la オプションの使い方です。これは -l-a の2つのオプションを組み合わせて、隠しファイルを含む全ファイルの詳細情報を表示させる書き方です。

コマンドは以下のように入力します。

ls -la

コマンドを入力すると、以下のように表示されます。

左側から、ファイルの権限、所有者、所有グループ、ファイルの容量、更新日、ファイル名です。ファイルの詳細の情報を表示しています。

また、先頭が . で始まる隠しファイルも表示してくれます。このように全ファイルの詳細を知りたい場合に -la オプションを使用します。

各列のさらに詳しい読み方は、後半のセクションで解説します。その前に、表示に出てきた ... の正体から片付けておきましょう。

隠しファイルと.と..の意味

ls -a を実行すると、必ず ... という2つの項目が表示されます。これは一体何なのか、気になった方も多いのではないでしょうか。

実は . はカレントディレクトリ自身を、.. は1つ上の親ディレクトリを表す特別な名前です。cd .. で上の階層に戻れるのは、この仕組みのおかげなんですね。

コマンド実行時によく見かける ./ の意味については、Linuxの./(ドットスラッシュ)の意味を解説した記事で詳しく説明しています。あわせて読むと理解が深まりますよ。

また、Linuxでは名前が . で始まるファイルは隠しファイルとして扱われます。.bashrc のような設定ファイルを、普段の一覧表示で邪魔にならないように隠しておくための慣習です。

ls -ltコマンドで更新日で並び替える

次に、ls -lt コマンドの使い方です。ファイルの更新日順で並び変えます。

更新日時が分かるように -l オプションも組み合わせています。以下のようにコマンドを入力します。

ls -lt

コマンドを入力すると、以下のように表示されます。b.txtの更新日時の方が新しいので先頭に表示されます。

では、a.txtを編集して順番が入れ替わるのか見てみましょう。viコマンドを使用して中身を編集します。

vi a.txt
ls -lt

ファイルの順番が変わっています!

viコマンドはファイルを編集するコマンドです。使い方については、viコマンドの使い方を解説した記事をご覧ください。

ls -dでディレクトリ自身の情報を表示する

ls /etc のようにディレクトリを指定すると、通常はその中身が一覧表示されます。では、ディレクトリそのものの情報を見たいときはどうすれば良いのでしょうか。

そこで使うのが -d オプションです。ls -ld /etc と実行すれば、中身ではなく /etc というディレクトリ自体の権限や更新日時が1行で表示されます。

ディレクトリの権限を確認したい場面で重宝するオプションです。中身が大量にあるディレクトリでも、画面が流れずに済みますよ。

ls -lの出力の見方を徹底解説

ls -l の出力は情報量が多く、最初は暗号のように見えるかもしれません。しかし各列の意味さえ分かれば、ファイルの状態がひと目で把握できるようになります。

それぞれの列が何を表しているのか、表に整理しました。

表示例 意味
1列目 -rw-r--r-- ファイルの種類とパーミッション
2列目 1 ハードリンクの数
3列目 root ファイルの所有者
4列目 root ファイルの所有グループ
5列目 1024 ファイルサイズ(バイト)
6列目 7月1日 10:00 最終更新日時
7列目 a.txt ファイル名

サイズの欄は、-h オプションを付けると 1K や 2.5M のような読みやすい単位に変わります。容量を確認するときは ls -lh の形で使うのが定番です。

先頭の1文字はファイルの種類を表す

1列目の先頭の1文字は、ファイルの種類を表しています。- は通常ファイル、d はディレクトリ、l はシンボリックリンクという意味です。

先ほどの ls -la の実行結果で、... の行が d から始まっていたのはこのためです。名前だけでは区別しづらいディレクトリを、確実に見分けられるようになります。

残りの9文字はパーミッションを表す

先頭の1文字に続く9文字は、パーミッション(アクセス権限)を表しています。3文字ずつ、所有者・所有グループ・その他のユーザーという3つの立場の権限に分かれています。

それぞれの記号の意味は、次の表のとおりです。

記号 意味 数値表現
r 読み取りの許可 4
w 書き込みの許可 2
x 実行の許可 1

たとえば rw-r--r-- であれば、所有者だけが読み書きできて、それ以外のユーザーは読み取り専用という状態です。数値で表すと644になり、chmodコマンドで権限を設定するときにこの数字を使います。

ファイルの権限や所有者を変更するためには、chmodやchownコマンドを使用します。詳しくはLinuxのファイル権限を徹底解説した記事で解説しています。

実務で役立つlsコマンドの組み合わせ

オプションは、組み合わせて初めて本領を発揮します。ここでは、インフラエンジニアの現場でよく使われる定番の組み合わせを紹介します。

ls -ltrでログファイルを時系列に調査する

サーバーの調査では、ls -ltr という組み合わせが定番です。-t の日付順を -r で逆にするため、古いファイルが上、最新のファイルが一番下に表示されます。

ログが大量にあるディレクトリでも、最新のファイルがプロンプトのすぐ上に来るので探す手間がありません。見つけたファイルの中身をさっと確認したいときは、ファイルの先頭を表示するheadコマンドと組み合わせると効率的です。

ls -lhSで容量の大きいファイルを探す

ディスクの空き容量が減ってきたときは、ls -lhS が役立ちます。-S でサイズの大きい順に並び、-h で単位が読みやすくなるからです。

どのファイルが容量を圧迫しているのか、上から順に眺めるだけで見当が付きます。ディスク容量の調査は、運用の現場で頻繁に発生する作業ですよ。

ワイルドカードで表示するファイルを絞り込む

ファイルが多すぎて目的のものが探しづらいときは、ワイルドカードで絞り込むのも有効です。ls *.txt と実行すれば、名前が .txt で終わるファイルだけが表示されます。

ls access* のように前方一致で絞ることもできます。正確にはシェルがワイルドカードを展開してからlsに渡しているのですが、まずは絞り込みの書き方として覚えておけば大丈夫です。

lsコマンドでよくある疑問

最後に、lsコマンドについて初心者の方からよく聞かれる疑問に答えておきます。気になるところだけ拾い読みしてもらっても大丈夫ですよ。

lsは何の略?

lsは、一覧を意味するlistに由来するとされています。書籍によってはlist segmentsの略と紹介されることもあります。

manコマンドで表示されるマニュアルには、list directory contents(ディレクトリの内容を一覧表示する)と説明があります。listの頭2文字と覚えておけば、意味を思い出しやすいですね。

llコマンドとlsコマンドの違いは?

環境によっては、ll という短いコマンドでもファイル一覧を表示できます。これは新しいコマンドではなく、多くの場合 ls -l などのエイリアス(別名)として定義されているものです。

エイリアスの内容や有無はディストリビューションによって異なります。定義されていない環境もあるため、まずは本体であるlsコマンドを使いこなせるようにしておくのが確実です。

ファイル名が色分けされて表示されるのはなぜ?

lsを実行すると、ディレクトリやリンクが色付きで表示されることがありますよね。これは多くのディストリビューションで、色分け表示を有効にする設定があらかじめ組み込まれているためです。

色の設定は環境によって異なりますが、ディレクトリが青系で表示されるケースが多いです。-F の記号と同じように、種類を見分けるヒントとして活用しましょう。

ファイルの数だけを知りたいときは?

ディレクトリ内のファイル数を数えたいときは、ls -1 | wc -l のようにパイプでつなぐ方法があります。-1 で1行につき1件の表示にして、wcコマンドで行数を数える仕組みです。

ただし、この数え方では隠しファイルは含まれず、ディレクトリは件数に含まれます。何を数えているのかを意識して使うようにしましょう。

lsより見やすい新しいコマンドはある?

lsの置き換えを狙ったツールとして、Rust製のexaというコマンドが人気を集めていました。しかしexaは開発が止まり、2023年にリポジトリがアーカイブされています。

現在は、コミュニティが開発を引き継いだezaというツールが後継として使われています。とはいえ、どのLinux環境にも最初から入っているのはlsだけなので、まずは基本のlsを使いこなせることが最優先ですよ。

lsコマンド使い方まとめ

今回の記事では、lsコマンドの使い方について解説しました。

lsコマンドはファイルやディレクトリの一覧を表示するコマンドで、-la オプションを付ければ隠しファイルを含む詳細情報まで確認できましたね。-lt で更新日時順、-ltr で古い順と、並び替えも自由自在です。

ls -l の出力は、ファイルの種類とパーミッション・所有者・サイズ・更新日時という並びでした。読み方が分かると、ただの文字列に見えていた画面が急に意味を持って見えてきます。

lsコマンドはLinuxの基礎コマンドなので、必ず使えるようにしておきましょう。実際に手を動かしながら学びたい方は、ブラウザ上でコマンドを実行しながら進められるLinux学習ロードマップがおすすめです。

Linuxについてさらに詳しく勉強したい方は、Linuxのおすすめ参考書を紹介した記事もご覧ください。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る