Linuxコマンド ls・dir(ディレクトリ・ファイル一覧)
ディレクトリやファイルを一覧表示するコマンドlsについて解説。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
使用方法
Linuxを操作する上で、ディレクトリ内にどのようなファイルやディレクトリがあるか調べることが多い。その場合は、lsやdirコマンドを使用する。もっとも使用頻度が高いコマンドでもある。dirはWindowsのDOSプロンプトで実行可能なコマンドであるが、最近のディストリビューションでは標準で使用できることが多い。
書式
ls [オプション] [ファイル名/ディレクトリ名]
dir [オプション] [ファイル名/ディレクトリ名]
$ ls #カレントディレクトリ内を表示
$ ls /usr/local #指定されたディレクトリ内を表示
$ ls -la #カレントディレクトリ内のすべてのファイル+詳細を表示
$ ls -ld #ディレクトリそのものの情報を表示する。
$ ls -lL #シンボリックリンク先の情報を表示する。
サンプル
$ ls /usr/local

オプション一覧
-a –all | “.”で始まるファイルも含めてすべてファイルやディレクトリを表示する。 ※UNIXシステムでは、ドッド(.)で始まる名称はドッドファイルと呼ばれ、 隠しファイルとして扱われている。 |
-b | エスケープ文字を表示する。 |
-c –time=status | -ltと併用した場合、ファイルの状態情報の変更日時(ctime)でソートする。 -lと併用した場合、名前でソートしてctimeを表示する。 それは以外はctimeの新しい順でソートする。 |
–clolor[=条件] | カラー表示する(never:カラーにしない、 auto:標準出力が端末ならカラー表示する、 always:常にカラー表示(デフォルト)) |
-d –directory | ディレクトリそのものの情報を表示する(ディレクトリの内容は表示しない) |
–full-time | タイムスタンプを詳細に表示する。 |
-h -human-readable | -lと併用したとき、適切な単位でサイズを表示する。 |
-i –inode | iノード番号を表示する。 |
-l –format=long | 詳細な情報(パーミッション、所有ユーザー、所有グループ、 ファイルサイズ、タイムスタンプ、ファイル名)を表示する。 |
-m –format-comma | ファイルをカンマで区切って表示する。 |
-n –numeric-uid-gid | ユーザー名・グループ名をUID・GIDで表示する。 |
-r –reverse | ソート順を反映させる。 |
–si | -hと同様だが1024単位ではなく1000単位で表示する。 |
-t –sort=time | ファイル更新日時でソートして表示する。 |
-x –format=across | ファイルを縦方向だけではなく水平方向に並べて表示する。 |
-l | ファイル名だけを1列で表示する。 |
-A –almost-all | “.”で始まる隠しファイル名も含めてファイルも表示する(”.”と”..”は除く) |
-B | ファイル名の最後に「~(チルダ)」がついたバックアップファイルを表示しない |
-C | 要素を列ごとに並べる |
-F –classify | ファイルの種類としてタイプ識別子を付けて表示する。 |
-G –no-group | -lと併用した時にグループ名を表示しない。 |
-L –dereference | シンボリックリンクはリンク先のファイル情報を表示する。 |
-R –recursive | サブディレクトリ内も再帰的にすべて表示する。 |
-S | ファイルサイズが大きいものからソートする。 |
-X | 拡張子のアルファベット順に表示する。 |
-Z –context | SELinuxセキュリティコンテキストを表示する。 |
ファイルの種類とパーミッション(アクセス権限)

ls -lコマンドを実行した際の1文字目はファイルの種類を表します。UNIXシステムでは、ディレクトリも、ハードウェア(ディスプレイやキーボード、マウス、HDD、FDD、CD-ROM等)すべてを「ファイル」として扱います。
※ファイルの種類は下記の表を参照。
ファイルの種類で一般的によく使用するのは、「d」、「l」、「-」の3つです。また、2つ目から10文字目がパーミッションを示しており、左から「オーナー(所有者)」、「所有グループ」、「その他のユーザ」の3つに分類される。それぞれにr=「Read(読み取り権限)」、w=「Write(書き込み権限)」、x=「eXecute(実行権)」の有無を表します。
rwxの表記があればアクセス権限があり、なければアクセス権限がないことを意味します。
記号 | 意味 | 説明 |
---|---|---|
d | ディレクトリファイル | ディレクトリを意味するファイル |
l | シンボリックリンクファイル | Windowsの「ショートカット」やMacOSのエイリアス |
c | キャラクタデバイスファイル (文字型特殊ファイル) | デバイスを操作するためのポインタとなるファイルで、 バッファを使用しないファイル。 rawデバイスファイルともいい、一般的に/devに格納される。 |
b | ブロックデバイスファイル (ブロック型特殊ファイル) | ハードウェアを操作するためのポインタとなるファイルで、 バッファを使用するファイル。一般的に/devに格納される。 |
p | 名前付きパイプファイル | FIFO(First In First Out)ともいい、プロセス間で通信するための手段の 1つとして使用されるファイル。 |
s | ソケットファイル | データ送受信のため、主にネットワークにおける通信に使われるファイル。 一般的に「/tmp/orbit-ユーザ名」以下に格納される。 |
– | 普通のファイル | 上記を除くファイルで、一般的に「ファイル」と呼ばれているファイル。 |
隠しファイルを含めてすべて表示する
コマンド例
$ ls -a

ファイルとディレクトリを区別して表示する
オプションなしで実行した場合、ファイルとディレクトリ、実行ファイル等の区別がつかないため、-Fや-pオプションを付けると分類記号が表示され見やすくなります。
オプション-F、-pで表示される区別記号と意味について
記号 | -F | -P | |
---|---|---|---|
/ | 〇 | 〇 | ディレクトリ |
@ | 〇 | 〇 | シンボリック |
* | 〇 | × | 実行可能ファイル |
| | 〇 | 〇 | FIFO(First In First Out) |
= | 〇 | 〇 | ソケット |
なし | 〇 | 〇 | 通常ファイル |
コマンド例
$ ls -F

詳細に内容を表示する
-lオプションを使用することにより、パーミッションやリンク数、所有者、所有グループ、容量、タイムスタンプなどの情報を表示します。
コマンド例
$ ls -l
$ ls -la #詳細表示+すべての表示
$ ls -lX #詳細表示+拡張子順


サイズが多い順に並べて表示する。
-Sオプションを付けることにより、ディレクトリ内のファイルを容量が多い順番に並べ替えて表示することができる。
コマンド例
$ ls -lS

拡張子を並べて表示する。
-Xオプションを付けることにより、ディレクトリ内のファイルを拡張子順に並べ替えて表示することができる。
コマンド例
$ ls -lX

修正時間が新しい順に並べて表示する。
-tオプションを使用することにより、修正時刻が新しい順にディレクトリ内を並べ替えてくれます。これは、inodeのi_mtime(更新時刻)という値を基準にしています。
コマンド例
$ ls -lt

逆順に表示する
ディレクトリ内のファイルは、特別に指定しなければファイル名を基準にアルファベットを昇順(a.b.c…)で並べ替えて表示しますが、逆に並べ替えてほしい場合は、-rオプションを付けることにより、降順(…c.b.a)で並べ替えてくれます。
コマンド例
$ ls -lr


サブディレクトリを含めて表示する
-Rコマンドを使用するこにより、カレントディレクトリにサブディレクトリが含まれる場合、再帰的にサブディレクトリ内容を表示します。
コマンド例
$ ls -R

特定のファイルを表示しない
–hideオプションを使用することにより、特定のファイルを表示させないことができます。
コマンド例
$ ls -hide "文字列"
$ ls -hide "*.bat" #.batという文字列が含まれているファイル名を除外

ファイルリストをカンマ切りで表示する。
コマンド例
$ ls -m
