Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

ls

ファイル/ディレクトリのリストを表示する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
ls [-l] [-a] [-A] [-F] [-R] [-u] [-t] [-r] [-d] [PATH]

 lsコマンドは、PATHに指定したディレクトリ内のディレクトリやファイルの情報を一覧表示します。PATHにファイル名を指定すると、そのファイルの情報を表示します。また、オプションを指定することにより、表示内容や表示形式を変えることができます。

オプション
① -l
アクセス権、リンク数、所有者名、グループ名、サイズ、最終更新日時、名前を1エントリにつき1行で表示します。ロング形式ともいいます。
② -a
ファイル名が「.」(ピリオド)から始まるファイルはドットファイル(または隠しファイル)と呼ばれ、通常lsコマンドでは表示されません。ドットファイルも含めて、すべてのファイル、ディレクトリを表示する場合に、このオプションを指定します。
③ -A
オプション「-a」オプションとほぼ同じですが、特殊な形式である、「.」(カレントディレクトリ)と「..」(親ディレクトリ)を表示しません。
④ -F
エントリ名の後に種別を表す文字を表示します。ディレクトリを表す「/」、シンボリックリンクを表す「@」、実行可能形式ファイルを表す「*」などがあります。
⑤ -R
サブディレクトリの内容も表示します。
⑥ -u
オプション「-l」といっしょに指定して、最終更新日時の代わりに最終アクセス日時を表示します。
⑦ -t
最終更新日時が最近のものから順に並び替えて表示します。
⑧ -r
エントリ名をキーに降順に並び替えて表示します。
⑨ -d
PATHにディレクトリを指定した場合、ディレクトリ内ではなく、その指定したディレクトリの情報を表示します。
エントリ

 エントリとは、ファイルやディレクトリなどlsコマンドの構成要素となるものを総称して使います。エントリ名という場合は、ファイル名やディレクトリ名を指します

実行可能形式ファイル

 コマンドやアプリケーションなど実行することができるバイナリファイルのことを実行可能形式ファイルといいます。ただし実行するには、実行権限が必要です。

 バイナリ(データ)

引数
① PATH
リストを表示するディレクトリまたはファイルへのパスを指定します。ワイルドカードによる指定も可能です。省略した場合は、カレントディレクトリの内容を表示します。
カレントディレクトリの内容を表示する
$ ls 
PATHを省略
dir01 dir02 dir03 file01 file02 file03 file11
$
すべてのファイルおよびディレクトリ名を表示する
$ ls -a 
. .. .dotfile dir01 dir02 dir03 file01 file02 file03 file11
$
ドットファイルを含めて表示するが「.」および「..」は表示しない
$ ls -A 
.dotfile dir01 dir02 dir03 file01 file02 file03 file11
$
エントリ名の最後にエントリの属性を示す文字を付加して表示します
$ ls -F 
dir01/ dir02/ dir03/ file01* file02 file03 file11@
「dir01」「dir02」「dir03」がディレクトリ、「file01」が実行可能形式ファイル、「file11」がシンボリックリンク、その他が通常ファイル
$
サブディレクトリの内容も表示する
$ ls -R 
.dotfile dir01 dir02 dir03 file01 file02 file03 file11
.:
dir01 dir02 dir03 file01 file02 file03 file11

./dir01:
file11 file12

./dir02:
file21 file22 file23

./dir03:
file31 file32 file33 file34
サブディレクトリ「dir01」「dir02」「dir03」の内容
$
HINT!

 オプション「-R」を指定してサブディレクトリの内容を表示することができますが、慣れないと階層構造がわかりにくいかも知れません。同様にサブディレクトリの内容まで表示するtreeコマンドを使用すると、階層構造をわかりやすく表示できます。treeコマンドを実行すると、階層構造を次のように表示します。

 $ tree dir02

 dir02

 |-- dir01

 | |-- file11

 | `-- file12

 |-- dir02

 | |-- file21

 | |-- file22

 | `-- file23

 |-- file01

 |-- file02

 `-- file03

詳細情報を表示する
$ ls -l 
合計24
drwxrwxr-x 2 cmd cmd 4096 4月11 15:13 dir01
drwxrwxr-x 2 cmd cmd 4096 4月11 15:13 dir02
drwxrwxr-x 2 cmd cmd 4096 4月11 15:14 dir03
-rwxrwxrwx 1 cmd cmd 25 4月11 15:13 file01
-rw-rw-r-- 1 cmd cmd 32 4月11 15:13 file02
-rw-rw-r-- 1 cmd cmd 39 4月11 15:13 file03
lrwxrwxrwx 1 cmd cmd 12 4月11 15:23 file11 -> dir01/file11
$ ls -lu
合計24
drwxrwxr-x 2 cmd cmd 4096 4月11 15:39 dir01
drwxrwxr-x 2 cmd cmd 4096 4月11 15:39 dir02
drwxrwxr-x 2 cmd cmd 4096 4月11 15:39 dir03
-rwxrwxrwx 1 cmd cmd 25 4月11 15:13 file01
-rw-rw-r-- 1 cmd cmd 32 4月11 15:13 file02
-rw-rw-r-- 1 cmd cmd 39 4月11 15:13 file03
lrwxrwxrwx 1 cmd cmd 12 4月11 15:39 file11 -> dir01/file11
$
最終更新日時が最近のものから順に並べ替えて表示する
$ ls -lt 
合計24
lrwxrwxrwx 1 cmd cmd 12 4月11 15:23 file11 -> dir01/file11
drwxrwxr-x 2 cmd cmd 4096 4月11 15:14 dir03
drwxrwxr-x 2 cmd cmd 4096 4月11 15:13 dir02
drwxrwxr-x 2 cmd cmd 4096 4月11 15:13 dir01
-rw-rw-r-- 1 cmd cmd 39 4月11 15:13 file03
-rw-rw-r-- 1 cmd cmd 32 4月11 15:13 file02
-rwxrwxrwx 1 cmd cmd 25 4月11 15:13 file01
$
エントリ名をキーに降順に並べ替えて表示する
$ ls -lr 
合計24
lrwxrwxrwx 1 cmd cmd 12 4月11 15:23 file11 -> dir01/file11
-rw-rw-r-- 1 cmd cmd 39 4月11 15:13 file03
-rw-rw-r-- 1 cmd cmd 32 4月11 15:13 file02
-rwxrwxrwx 1 cmd cmd 25 4月11 15:13 file01
drwxrwxr-x 2 cmd cmd 4096 4月11 15:14 dir03
drwxrwxr-x 2 cmd cmd 4096 4月11 15:13 dir02
drwxrwxr-x 2 cmd cmd 4096 4月11 15:13 dir01
$
ディレクトリそのものの情報を表示する
$ ls -l dir01 
ディレクトリの内容を表示
合計8
-rw-rw-r-- 1 cmd cmd 39 4月11 15:13 file11
-rw-rw-r-- 1 cmd cmd 39 4月11 15:13 file12
$ ls -ld dir01
ディレクトリの情報を表示
drwxrwxr-x 2 cmd cmd 4096 4月11 15:13 dir01
$
Windows環境との共存

 筆者はUNIX崇拝者でもなければアンチWindowsユーザでもありません。現在は、仕事でも家でもWindowsマシンとUNIXマシンを半々ぐらい使っています。それぞれに良い所と悪い所があるわけですから、それぞれのOSのいいとこ取りができればよいと考えています。理想をいいますなら、お互いのOSがデータやプログラムなどネットワークを通じていつでもどこでも利用できるような環境があればもっとコンピュータの世界が広がるに違いありません。筆者が現在思っていることのひとつに、lsコマンドによって日本語文字ファイル名を、EUCやSJISといった文字コードで自動で認識して表示できるようにならないかということです。Windows側から格納されたデータとUNIXで作成したデータが同じ所にあって、相方のOSから編集できたら、と思うのです。よく知人に「それなら日本語ファイル名なんて使わなければよい」といわれますが、これは後ろ向きな考え方であると思います。どうすれば今できないことができるようになるのか、それを考え続けて行けばもっとすばらしいOSへと変わっていくでしょうから。

UNIXコマンド辞典トップページに戻る

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5