更新日:
【IT用語】 lsとは?豊富な具体例で使い方とオプションを徹底解説!
lsコマンドとはファイルやディレクトリの一覧(リスト)を表示するときに使用するコマンドです。ターミナルから特定のディレクトリ配下の一覧を表示するときに便利です。
ls
コマンドの出力結果は、次の画像のようにFinderでディレクトリを展開したときと同じ表示になります。
ターミナルでコマンドを打つと考えると難しく感じますが、lsコマンドの役割はFinderでディレクトリを展開しているのと同じで非常にシンプルです。
lsコマンドとは
ls
コマンドは冒頭でも説明した通り、Finderでディレクトリを展開した内容と同じものをターミナルで表示しているに過ぎず、非常にシンプルなコマンドです。
しかし、Finderと違ってlsコマンドはオプションを使って表示する一覧の項目を変更したり、他のコマンドと併用して一覧で表示する内容を絞ったりすることができます。
オプションも含めたls
コマンドの使い方を知り、指定したディレクトリ一覧の表示の使い勝手をよくしましょう。
lsコマンドの基本的な使い方
次のようなフォルダ構成でls
コマンドの基本的な使い方を説明します。
ls
と打つと、カレントディレクトリにあるディレクトリとファイルの一覧を次のように表示できます。
1
2
3
$ ls
sample2_dir sample_dir test1.txt test2.txt test3.txt
ディレクトリを指定した場合
ls ディレクトリ名
と打つと、指定したディレクトリにあるディレクトリとファイルの一覧を次のように表示できます。
1
2
3
$ ls sample_dir # ディレクトリを指定
sample_dir_image1.png sample_dir_image2.png sample_dir_text1.txt sample_dir_text2.txt
ディレクトリ名を指定する場合は、カレントディレクトリに対象ディレクトリがなければ、カレントディレクトリからの相対パスか絶対パスを含んだディレクトリ名を指定する必要があります。
cd
で親ディレクトリに移動した後に、ls
とするとsample_dir
がありません。
1
2
3
4
5
6
7
8
$ cd .. # Desktopから親ディレクトリへ移動
$ pwd # カレントディレクトリを表示
/Users/pikawaka
$ ls # 一覧を表示
Applications Documents Library Music Public
Desktop Downloads Movies Pictures
ディレクトリがない場合にパスを指定するとエラーになります。
1
2
3
$ ls sample_dir # カレントディレクトリにないディレクトリを指定
ls: sample_dir: No such file or directory
カレントディレクトリにないディレクトリを指定する場合は、相対パスか絶対パスを含んだディレクトリ名を指定するようにしましょう。
1
2
3
$ ls Desktop/sample_dir # 相対パスで指定
sample_dir_image1.png sample_dir_image2.png sample_dir_text1.txt sample_dir_text2.txt
1
2
3
$ ls /Users/ユーザー名/Desktop/sample_dir # 絶対パスで指定
sample_dir_image1.png sample_dir_image2.png sample_dir_text1.txt sample_dir_text2.txt
ワイルドカードを使った場合
ワイルドカードの?
や*
を使うと、指定したパターンでファイルの絞り込みができるようになります。
項目 | 概要 |
---|---|
? | 任意の1文字を指定するときに利用 |
* | 0文字以上の文字を指定するときに利用 |
例えばワイルドカードを使うと、特定の拡張子のパターンのみ表示するといった場合に利用できます。
表示結果を分かりやすくするために、.txt以外の拡張子
のファイルを作成します。
1
2
3
4
5
6
7
8
9
$ cd ~/Desktop # デスクトップへ移動
$ touch html1.html # html1.htmlというファイルを作成
$ touch html2.html # html2.htmlというファイルを作成
# ファイルが作成されたか確認
$ ls
html1.html html2.html sample2_dir sample_dir test1.txt test2.txt test3.txt
この一覧から、.txt
の拡張子のみと、.html
の拡張子のみを表示します。
1
2
3
4
5
6
7
$ ls *.txt # .txt拡張子のファイルのみ表示
test1.txt test2.txt test3.txt
$ ls *.html # .html拡張子のファイルのみ表示
html1.html html2.html
このようにアスタリスク(*
)は.拡張子(.txt や .html)
の手前にある文字数が何文字でも末尾が指定した拡張子(.拡張子
)で終わっているファイルの一覧を表示します。
次に?
のワイルドカードの使い方を説明します。まず準備として説明用のファイルを作成します。
1
2
3
4
5
6
7
8
$ touch a.txt # a.txtというファイルを作成
$ touch ab.txt # b.txtというファイルを作成
$ touch abc.txt # c.txtというファイルを作成
# .txt拡張子のファイルのみ表示
$ ls *.txt
a.txt ab.txt abc.txt test1.txt test2.txt test3.txt
準備ができました。?
は任意の一文字を表すと説明しました。
次のように?
を利用します。
1
2
3
$ ls ?.txt # 1文字の名前の.txt拡張子のファイル表示
a.txt
1
2
3
$ ls ??.txt # 2文字の名前の.txt拡張子のファイルのみ表示
ab.txt
1
2
3
$ ls ???.txt # 3文字の名前の.txt拡張子のファイルのみ表示
abc.txt
出力結果のように?
に当てはまる文字数にマッチしたファイルを表示します。??
と続けて二文字のファイル名のファイルが表示されます。
そしてマッチしなければ、エラーが表示されます。例えば、次の例では4文字の.txt拡張子のファイルはないので、????.txt
をするとエラーが出ます。
1
2
3
$ ls ????.txt # 存在しないパターンを指定
zsh: no matches found: ????.txt
?*.txt
を使うと、?
の数以上の文字数の.txt
ファイルを表示できます。
1
2
3
$ ls ??*.txt # 2文字以上の名前の.txt拡張子のファイルのみ表示
ab.txt abc.txt test1.txt test2.txt test3.txt
指定したパターンで一覧を表示できるのは、便利ですね。ここで今回学んだワイルドカードを使って、説明用に作成したファイルを削除します。
1
2
3
4
5
6
7
$ rm a*.txt # aから始まる.txt拡張子のファイルを削除
$ rm *.html # .htm拡張子のファイルを削除
# ファイルが削除されたか確認
$ ls
sample2_dir sample_dir test1.txt test2.txt test3.txt
lsコマンドのオプション
ls
コマンドにはオプションが豊富にあります。オプションが豊富にあるだけに、あまり使われていないオプションもたくさんあります。
この章では「よく使われる便利なオプション」 ~ 「使ってみると非常に便利なおすすめのオプション」について説明していきます。
オプション | 説明 |
---|---|
ls -a | 隠しファイルも含めて全てのファイルを表示する。 |
ls -l | ファイルの詳細を縦型で表示する。 |
ls -t | ファイルを最新順に並べ替える。 |
ls -r | ファイルを逆順に並べ替える。 |
ls -S | ファイルをサイズの大きい順に並び替える。 |
ls -p | ディレクトリの末尾にスラッシュ( / )を表示する。 |
ls -a: 隠しファイルも含めて全て表示
ls
のオプションで一番使われていると言っても過言ではないのが-aオプションです。
-aオプション
の特徴は、ドット(.
)から始まる隠しファイルも含めて表示することです。
隠しファイルを作成して、ls
を実行してもドット(.
)から始まる隠しファイルは表示されません。
1
2
3
4
$ touch .hiddenfile.txt # 隠しファイルを作成
$ ls
test1.txt test2.txt test3.txt
しかし、-aオプション
を使えば隠しファイルを表示できます。
1
2
3
$ ls -a #すべてのファイルを表示
. .. .hiddenfile.txt sample2_dir sample_dir test1.txt test2.txt test3.txt
ls -l: ファイルの詳細を表示
-lオプション( L の小文字)は、-aオプションについでよく使われるオプションです。
-lオプション
の特徴は、ファイルの詳細を縦に表示してくれることです。
ls
を単に実行しただけでは、ファイル名しか表示できませんでした。
しかし、-lオプション
をつかうと、左からファイルモード、ユーザー名、グループ名、タイムスタンプ、ファイル名などの詳細情報も合わせて表示できます。
1
2
3
4
5
6
7
8
$ ls -l # ファイルの詳細を表示
total 0
drwxr-xr-x 2 pikawaka staff 64 4 4 12:00 sample2_dir
drwxr-xr-x 6 pikawaka staff 192 4 2 12:00 sample_dir
-rw-r--r-- 1 pikawaka staff 0 4 1 12:00 test1.txt
-rw-r--r-- 1 pikawaka staff 0 4 3 12:00 test2.txt
-rw-r--r-- 1 pikawaka staff 0 4 5 12:00 test3.txt
ファイルの詳細を確認したいときに使いましょう。
またファイル数が少ない場合は、ls
でも不便は感じませんがファイル数が多くなると縦の方が見やすくなるので、
ls
で見辛いなと思ったら、-lオプションを使うようにしましょう。
ls -t: ファイルを最新順に並べ替え
-tオプションの特徴は、ファイルの順番を最新順にして表示できることです。
ls
はデフォルトではアルファベット順にファイルを表示します。
1
2
3
4
5
6
7
$ touch a.txt # a.txtというファイルを作成
$ mkdir z_dir # z_dirというディレクトリを作成
# アルファベット順に表示
$ ls
a.txt sample_dir sample2_dir test1.txt test2.txt test3.txt z_dir
しかし、-tオプションを使えば、ファイルを作成した順番に表示できます。
1
2
3
$ ls -t # 最新順に表示
z_dir a.txt test3.txt sample2_dir test2.txt sample_dir test1.txt
ls -r: ファイルを逆順に並べ替え
-rオプションの特徴は、ファイルの順番を逆さにして表示できることです。
ls
はデフォルトではアルファベット順にファイルを表示すると説明しました。
しかし、-rオプション
をつかえば逆アルファベット順にファイルを表示できます。
1
2
3
$ ls -r # 逆アルファベット順に表示
z_dir test3.txt test2.txt test1.txt sample2_dir sample_dir a.txt
後ほど説明しますが、他のオプションと組み合わせることで、他の基準で並べ替えた順番を逆さにすることもできます。
最後に、作成したファイルとディレクトリを削除しておきます。
1
2
3
4
5
# 作成したファイルを削除しておく
$ rm a.txt
# 作成したディレクトリを削除しておく
$ rmdir z_dir
ls -S: ファイルをサイズの大きい順に並べ替え
-Sオプション( s の大文字)の特徴は、ファイルをサイズの大きい順番にして表示できることです。
ls
はデフォルトではアルファベット順にファイルを表示すると説明しました。
しかし、-Sオプション
をつかえばサイズの大きい順にファイルを表示できます。
ファイル内に記載されている文字数が多いほどファイルサイズは大きくなります。
まずは、説明用のファイルを作成します。
1
2
3
4
5
6
7
# 空のhtmlファイルを3つ作成
$ touch size01.html size02.html size03.html
# htmlファイルをアルファベット順に表示
$ ls *.html
size01.html size02.html size03.html
作成したファイルは中身がない状態なので、それぞれのファイルに文字を書き込みます。
1
2
3
$ echo "a" > size01.html # size01.htmlに1文字書き込む
$ echo "ab" > size02.html # size02.htmlに2文字書き込む
$ echo "abc" > size03.html # size03.htmlに3文字書き込む
いよいよ、-Sオプション
を使ってファイルを大きい順に並べ替えます。
1
2
3
4
# htmlファイルをサイズの大きい順に表示
$ ls -S *.html
size03.html size02.html size01.html
無事にサイズの大きい(ファイル内に記載されている文字数が多い)順にファイルが表示されました。
最後に、作成したファイルを削除しておきます。
1
2
# 作成したファイルを削除しておく
rm size*.html
ls -p: ディレクトリの末尾にスラッシュ( / )を表示
-pオプションの特徴は、ディレクトリ名の末尾にスラッシュ(/
)をつけて表示できる ことです。
ls
コマンドを単に実行しただけでは、表示される名前から、それがファイルかディレクトリなのかを判断しなければいけませんでした。
しかし、-pオプション
を使えば、ディレクトリの場合のみ末尾にスラッシュ(/
)をつけて表示することができ、勘違いをしてしまうこともなくなります。
1
2
3
$ ls -p # ファイルとディレクトリを区別して表示
sample2_dir/ sample_dir/ test1.txt test2.txt test3.txt
lsコマンドのオプションの便利な組み合わせ
前章で説明したオプションを組み合わせることで、一覧の表示の使い勝手がよくなります。
ここでは便利なオプションの組み合わせについて解説します。
オプション | 説明 |
---|---|
ls -la | 隠しファイルも含めてファイルの詳細を表示する。 |
ls -ltr | ファイルを古い順に表示する |
ls -lSh | ファイルの詳細をサイズの大きい順に表示する |
ls -la: すべてのファイルの詳細を表示
-l
オプションと-a
オプションを組み合わせることで、隠しファイルも含めた一覧を詳細に表示します。
1
2
3
4
5
6
7
8
9
10
11
$ ls -la # すべてのファイルの詳細を表示
total 0
drwx------+ 9 pikawaka staff 288 Apr 15 23:11 .
drwxr-xr-x+ 15 pikawaka staff 480 Apr 15 22:42 ..
-rw-r--r-- 1 pikawaka staff 0 Apr 15 23:11 .hiddenfile.txt
drwxr-xr-x 2 pikawaka staff 64 Apr 4 12:00 sample2_dir
drwxr-xr-x 6 pikawaka staff 192 Apr 2 12:00 sample_dir
-rw-r--r-- 1 pikawaka staff 0 Apr 1 12:00 test1.txt
-rw-r--r-- 1 pikawaka staff 0 Apr 3 12:00 test2.txt
-rw-r--r-- 1 pikawaka staff 0 Apr 5 12:00 test3.txt
ls -ltr: ファイルの詳細を古い順に表示
-l
オプションと-t
オプション-r
オプションを組み合わせることで、作成 / 更新したのが古いファイルから詳細を表示します。
1
2
3
4
5
6
7
8
9
10
$ touch latest.txt # ファイルを作成
$ ls -ltr # ファイルの詳細を古い順に表示
total 0
-rw-r--r-- 1 pikawaka staff 0 4 1 12:00 test1.txt
drwxr-xr-x 6 pikawaka staff 192 4 2 12:00 sample_dir
-rw-r--r-- 1 pikawaka staff 0 4 3 12:00 test2.txt
drwxr-xr-x 2 pikawaka staff 64 4 4 12:00 sample2_dir
-rw-r--r-- 1 pikawaka staff 0 4 5 12:00 test3.txt
-rw-r--r-- 1 pikawaka staff 0 4 15 23:15 latest.txt
このコマンドが便利なところは、最新でダウンロードしたファイルの名前を忘れたときなどに、Downloadsディレクトリでコマンドを打つと、最後の方に出てきたのがダウンロードしたファイルなので、思い出すことができます。
Downloadsディレクトリのファイルが沢山多くなると、ls -lt
コマンドでは↑までスクロールが少し面倒なので、ls -ltr
を使います。
最後に、作成したファイルを削除しておきます。
1
2
# 作成したファイルを削除しておく
$ rm latest.txt
ls -lSh: ファイルの詳細をサイズの大きい順に表示
-l
オプションと-S
オプション-h
オプションを組み合わせることで、サイズの大きいファイルから詳細を表示します。
中でも、-h
オプションの特徴は、ファイルの詳細に含まれるサイズ情報の末尾に単位を付与して表示することです。
まずは、説明用に空のファイルを作成してから、それぞれのファイルに文字を書き込みます。
1
2
3
4
5
6
# 空のhtmlファイルを3つ作成
$ touch size01.html size02.html size03.html
$ echo "a" > size01.html # size01.htmlに1文字書き込む
$ echo "ab" > size02.html # size02.htmlに2文字書き込む
$ echo "abc" > size03.html # size03.htmlに3文字書き込む
いよいよ、-lSh
オプションを使って、ファイルの詳細をサイズの大きい順に表示します。
1
2
3
4
5
6
# .html拡張子のファイルの詳細をサイズの大きい順に表示
$ ls -lSh *.html
-rw-r--r-- 1 pikawaka staff 4B 4 15 23:33 size03.html
-rw-r--r-- 1 pikawaka staff 3B 4 15 23:33 size02.html
-rw-r--r-- 1 pikawaka staff 2B 4 15 23:33 size01.html
無事にサイズの大きい順に詳細情報が表示され、ファイルサイズにはバイトを意味するB
という単位が末尾に加わっています
最後に作成したファイルを削除しておきます。
1
2
# 作成したファイルを削除しておく
$ rm size*.html
lsコマンドと他のコマンドとの併用
パイプ|
を使うと、コマンドを併用できます。今回はlsコマンドと一緒に使うと便利なコマンドを紹介します。
コマンド | 説明 |
---|---|
grep | 検索する |
cat -n | 行番号をつける |
head -n | 先頭を取り出す |
grep
ls
コマンドとgrep
コマンドを併用すれば、指定したディレクトリの一覧の内容を検索することができます。
ls | grep 検索したい文字列
の「検索したい文字列」にファイル名かディレクトリ名を入れることによって、検索文字に一文字でも引っかかっているディレクトリやファイルの一覧を表示することができます。
1
2
3
4
5
6
7
8
9
10
11
12
# sampleを名前に含むファイルとディレクトリのみ表示
$ ls | grep sample
sample2_dir
sample_dir
# testを名前に含むファイルとディレクトリのみ表示
ls | grep test
test1.txt
test2.txt
test3.txt
ファイル名の記憶が曖昧なときに便利です!
cat -n
ls
コマンドとcat
コマンドを併用すれば、出力結果の先頭に行番号をつけることができます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ touch a.txt z.txt # ファイルを2つ作成
# アルファベット順に並べ替えて行番号をつける
$ ls | cat -n
1 a.txt
2 sample2_dir
3 sample_dir
4 test1.txt
5 test2.txt
6 test3.txt
7 z.txt
# 最新順に並べ替えて行番号をつける
$ ls -t | cat -n
1 z.txt
2 a.txt
3 test3.txt
4 sample2_dir
5 test2.txt
6 sample_dir
7 test1.txt
ターミナルはテキストエディタとは違って、出力結果にデフォルトで行番号が出力されませんから、このようなちょっとした工夫が必要になります。
出力結果が長くて行番号なしでは見通しが悪かったり、並べ替えた結果に順位を表示させたい場合に便利です!
最後に作成したファイルを削除しておきます。
1
2
# 作成したファイルを削除しておく
$ rm a.txt z.txt
head -n
ls
コマンドとhead
コマンドを併用すれば、並べ替えた結果から上位の内容だけを表示ができます。
ls 並び替えのオプション | head -n 表示したい件数
の「並び替えのオプション」に-t
や-tr
など、「表示したい件数」に整数を入れることによって、並び替えた結果から上位の結果のみを表示できます。
1
2
3
4
5
6
7
8
9
10
11
$ touch latest.txt # ファイルを作成
# 一番新しいファイルのみを表示
$ ls -t | head -n 1
latest.txt
# 一番古いファイルのみを表示
$ ls -tr | head -n 1
test1.txt
大量のファイルが保存されているディレクトリから、一部の内容のみを表示したいときに便利です!
最後に、作成したファイルを削除しておきます。
1
2
# 作成したファイルを削除しておく
$ rm latest.txt
コマンドについて学ぶには
「ls以外のコマンドについても、一通り学んでおきたい!」という方には、以下の書籍がおすすめです。
macOSのコマンドラインの「超入門」が学べる本です。
価格も安く、最低限知っておくべきことを学ぶのには最適ではないでしょうか。
この記事のまとめ
ls
はディレクトリやファイルの一覧を表示するためのコマンドls
と*
や?
を組み合わせれば、パターンに一致するファイルだけを表示できるls
には隠しファイルを表示する-a
や、ファイルの詳細情報を表示する-l
などのオプションがあるls -al
のようにオプションを複数組み合わせる便利な使い方もあるls
とgrep
などのコマンドを組み合わせれば、ファイルを検索をしたりすることができる