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
lsの実行結果

オプション一覧

-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コマンドが出力する内容を解説
ファイルの種類

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
lsの実行結果

ファイルとディレクトリを区別して表示する

オプションなしで実行した場合、ファイルとディレクトリ、実行ファイル等の区別がつかないため、-Fや-pオプションを付けると分類記号が表示され見やすくなります。

オプション-F、-pで表示される区別記号と意味について

記号-F-P
/ディレクトリ
@シンボリック
*×実行可能ファイル
|FIFO(First In First Out)
=ソケット
なし通常ファイル

コマンド例

$ ls -F
lsの実行結果
実行結果

詳細に内容を表示する

-lオプションを使用することにより、パーミッションやリンク数、所有者、所有グループ、容量、タイムスタンプなどの情報を表示します。

コマンド例

$ ls -l
$ ls -la #詳細表示+すべての表示
$ ls -lX #詳細表示+拡張子順
lsの実行結果
lsの詳細表示の解説図

サイズが多い順に並べて表示する。

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

コマンド例

$ ls -lS
lsの実行結果

拡張子を並べて表示する。

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

コマンド例

$ ls -lX
lsの実行結果

修正時間が新しい順に並べて表示する。

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

コマンド例

$ ls -lt
lsの実行結果

逆順に表示する

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

コマンド例

$ ls -lr
lsの実行結果
lsの実行結果

サブディレクトリを含めて表示する

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

コマンド例

$ ls -R
lsの解説図

特定のファイルを表示しない

–hideオプションを使用することにより、特定のファイルを表示させないことができます。

コマンド例

$ ls -hide "文字列"
$ ls -hide "*.bat" #.batという文字列が含まれているファイル名を除外
lsの実行結果

ファイルリストをカンマ切りで表示する。

コマンド例

$ ls -m
lsの実行結果