【Linux】lsコマンドの使い方やオプションを詳しく解説!

この記事ではLinuxの『lsコマンド』について、

  • Linuxのlsコマンドとは
  • lsコマンドの使い方
  • lsコマンドのオプション

などを分かりやすく説明するように心掛けています。ご参考になれば幸いです。

Linuxのlsコマンドとは

Linuxのlsコマンドは、ディレクトリの内容を表示するために使用される基本的なコマンドです。このコマンドを使用すると、ファイルやディレクトリのリストを取得し、さまざまな形式でその情報を表示することができます。

以下にLinuxのlsコマンドの構文を示します。

Linuxのlsコマンドの構文

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

lsコマンドは多くのオプションと組み合わせて使用することができます(後ほど、lsコマンドのオプションとその使い方について詳しく説明します)。

また、特定のファイルやディレクトリも指定できます。例えば、hogehogeディレクトリの中身を表示させたい場合には、ls hogehogeと実行します(ls hまで入力して、Tabキーを押すと、ディレクトリ名が補完されます。「h」で始まるディレクトリが複数ある場合には、Tabキーを何度か押すと、候補のディレクトリが次々と表示されます)。

特定のファイルやディレクトリを指定しない場合、lsコマンドは現在のディレクトリの内容を表示します。

補足

lsコマンドの「ls」は「list segments」の略です。

lsコマンドの使い方

lsコマンドを単体で使用すると、現在のディレクトリのファイルとディレクトリ(隠しファイルや隠しディレクトリは除く)がアルファベット順に表示されます。

ls

実行例

$ ls
A.txt  B.txt  Folder_A  Folder_B

lsコマンドのオプション

以下にlsコマンドの主なオプションを示します。

短いオプション長いオプション説明
-a--all・隠しファイルやディレクトリも表示。
-A--almost-all・隠しファイルやディレクトリも表示。
・「カレントディレクトリ(.)」と「親ディレクトリ(..)」を除く。
-l・ファイルの詳細を表示。
-h--human-readable-lオプションで表示されるファイルサイズを人が読みやすい形式(例: KB、MB)で表示。
-d--directory・ディレクトリの内容ではなく、ディレクトリ自体の情報を表示。
-1なし・リストを1件1行で表示。
-F--classify・名前の後ろにファイル識別子(*/=>@|のいずれか)を付けて表示。
-r--reverse・リストを逆順に表示。
-tなし・リストを最終変更時間に表示。
-Sなし・リストをファイルサイズ順に表示。
-Xなし・リストを拡張子のアルファベット順に表示。
-R--recursive・再帰的にディレクトリの中身も表示。
-mなし・リストをカンマ区切りで表示。
-Q--quote-name・リストをダブルクォートで囲んで表示。
-i--inode・各ファイルの前にファイルのiノード番号(ファイルを管理するのに使われている数値)を表示。
なし--ignore=PATTERNPATTERNに一致する情報以外の情報を表示。

ls -a

-aオプション(または--allオプション)をつけることで、lsコマンドだけでは見えなかった隠しファイル(ドット始まりのファイル)や隠しディレクトリ(ドット始まりのディレクトリ)も表示します。実行例を以下に示します。

$ ls -a
.  ..  .C.txt  .D.txt  .Folder_C  .Folder_D  A.txt  B.txt  Folder_A  Folder_B

ls -A

-Aオプション(または--almost-allオプション)をつけると、隠しファイルや隠しディレクトリも表示しますが、カレントディレクトリを示す.と親ディレクトリを示す..は除外します。実行例を以下に示します。

$ ls -A
.C.txt  .D.txt  .Folder_C  .Folder_D  A.txt  B.txt  Folder_A  Folder_B

ls -l

-lオプションをつけることで、ファイルの詳細(ファイルタイプ、パーミッション、所有者、グループ、サイズ、最終更新日時、ファイル名)をリスト表示します。実行例を以下に示します。

$ ls -l
total 312
-rw-r--r-- 1 user01 user01      0 Apr 22 14:57 A.txt
-rw-r--r-- 1 user01 user01 311052 Apr 22 14:57 B.txt
drwxr-xr-x 2 user01 user01   4096 Apr 22 14:28 Folder_A
drwxr-xr-x 2 user01 user01   4096 Apr 22 14:28 Folder_B
項目説明
-rw-r--r--・ファイルタイプとパーミッションを示す。
・最初の文字はファイルタイプを示す(-は通常のファイル、dはディレクトリ、lはシンボリックリンクなど)。
・次の三文字(rw-)はファイル所有者のパーミッション(読み取り、書き込み、実行)を示す。
・次の三文字(r--) はグループのパーミッションを示す。
・最後の三文字(r--) はその他のユーザーのパーミッションを示す。
1・ファイルへのハードリンクの数を示す。
・ディレクトリの場合は、そのディレクトリに含まれるサブディレクトリの数+2になる。
user01・ファイルの所有者のユーザー名を示す。
user01・ファイルの所有者のグループ名を示す。
0・ファイルのサイズ(バイト単位)を示す。
-h オプションを使用すると、ファイルサイズを人が読みやすい形式(例: KB、MB)で表示する。
Apr 22 13:28・ファイルが最後に変更された日時を示す。
A.txt・ファイルまたはディレクトリの名前を示す。

-lオプションに-h オプションをつけることで、ファイルサイズを人が読みやすい形式(例: KB、MB)で表示します。実行例を以下に示します。

$ ls -lh
total 312K
-rw-r--r-- 1 user01 user01    0 Apr 22 14:57 A.txt
-rw-r--r-- 1 user01 user01 304K Apr 22 14:57 B.txt
drwxr-xr-x 2 user01 user01 4.0K Apr 22 14:28 Folder_A
drwxr-xr-x 2 user01 user01 4.0K Apr 22 14:28 Folder_B

ls -d

-dオプション(または--directoryオプション)をつけることで、ディレクトリの内容ではなく、ディレクトリ自体の情報を表示します。実行例を以下に示します。以下の実行例ではカレントディレクトリの情報が表示されています。

$ ls -ld
drwxr-xr-x 6 user01 user01 4096 Apr 22 13:33 .

特定のディレクトリの情報を表示したい場合には、以下のように実行します。以下の実行例ではFolder_Aディレクトリの情報が表示されています。

$ ls -ld Folder_A
drwxr-xr-x 2 user01 user01 4096 Apr 22 14:28 Folder_A

ls -1

-lオプションをつけることで、ファイルやディレクトリを1行ごとに表示します。実行例を以下に示します。

$ ls -1
A.txt
B.txt
Folder_A
Folder_B

ls -F

-Fオプションをつけることで、名前の後ろにファイル識別子(*/=>@|のいずれか)を付けて出力します。実行例を以下に示します。

$ ls -1F
A.txt
B.txt
Folder_A/
Folder_B/
ファイル識別子説明
/ディレクトリ
*実行可能ファイル
@シンボリックリンク
=ソケットファイル
|FIFO

この実行例では、Folder_AFolder_B がディレクトリであることが分かります。A.txtのように特定の記号が付けられていないものは、通常のファイルです。

ls -r

-rオプション(または--reverseオプション)をつけることで、リストを逆順に表示します。実行例を以下に示します。

$ ls
A.txt  B.txt  Folder_A  Folder_B
$ ls -r
Folder_B  Folder_A  B.txt  A.txt

ls -t

-tオプションをつけることで、リストを最終変更時間で表示します。実行例を以下に示します。

$ ls -lt
total 312
-rw-r--r-- 1 user01 user01 311052 Apr 22 14:57 B.txt
-rw-r--r-- 1 user01 user01      0 Apr 22 14:57 A.txt
drwxr-xr-x 2 user01 user01   4096 Apr 22 14:28 Folder_B
drwxr-xr-x 2 user01 user01   4096 Apr 22 14:28 Folder_A

ls -S

-Sオプションをつけることで、リストをファイルサイズ順で表示します。実行例を以下に示します。

$ ls -lS
total 312
-rw-r--r-- 1 user01 user01 311052 Apr 22 14:57 B.txt
drwxr-xr-x 2 user01 user01   4096 Apr 22 14:28 Folder_A
drwxr-xr-x 2 user01 user01   4096 Apr 22 14:28 Folder_B
-rw-r--r-- 1 user01 user01      0 Apr 22 14:57 A.txt

ls -X

-Xオプションをつけることで、リストを拡張子のアルファベット順で表示します。実行例を以下に示します。

$ ls -lX
total 312
drwxr-xr-x 2 user01 user01   4096 Apr 22 14:28 Folder_A
drwxr-xr-x 2 user01 user01   4096 Apr 22 14:28 Folder_B
-rw-r--r-- 1 user01 user01      0 Apr 22 14:57 A.txt
-rw-r--r-- 1 user01 user01 311052 Apr 22 14:57 B.txt

ls -R

-Rオプション(または--recursiveオプション)をつけることで、再帰的にディレクトリの中身も表示します。実行例を以下に示します。

$ ls -R
.:
A.txt  B.txt  Folder_A  Folder_B

./Folder_A:
subfile1.txt

./Folder_B:
subfile2.txt

ls -m

-mオプションをつけることで、リストをカンマ区切りで表示します。実行例を以下に示します。

$ ls -m
A.txt, B.txt, Folder_A, Folder_B

ls -Q

-Qオプション(または--quote-nameオプション)をつけることで、リストをダブルクォートで囲んで表示します。実行例を以下に示します。

$ ls -Q
"A.txt"  "B.txt"  "Folder_A"  "Folder_B"

ls -i

-iオプション(または--inodeオプション)をつけることで、各ファイルの前にファイルのiノード番号を表示します。実行例を以下に示します。

$ ls -i
29814 A.txt  29815 B.txt  29797 Folder_A  29817 Folder_B

ls --ignore=PATTERN

--ignore=PATTERNオプションをつけることで、PATTERNに一致する情報以外の情報を表示します。実行例を以下に示します。

$ ls
A.txt  B.txt  Folder_A  Folder_B
$ ls --ignore=*.txt
Folder_A  Folder_B

上記の実行例では、カレントディレクトリ内のすべての .txt ファイルを除外して、他のファイルやディレクトリのリストを表示しています。

本記事のまとめ

この記事ではLinuxの『lsコマンド』について、以下の内容を説明しました。

  • Linuxのlsコマンドとは
  • lsコマンドの使い方
  • lsコマンドのオプション

お読み頂きありがとうございました。