lsコマンドについて
lsコマンドは、
Unix系システムにおいてファイルや
ディレクトリの一覧を表示するための基本的なコマンドです。
POSIXおよびSingle
UNIX Specificationで規定されており、システムのファイル構造を把握する上で欠かせないツールの一つです。
歴史
lsコマンドは、
AT&T UNIXの最初のバージョンから存在し、その歴史は非常に古いものとなっています。名称は、Multicsに存在した類似のコマンドから受け継がれました。現在、主に利用されている実装としては、
フリーソフトウェア財団によるGNU版と、FreeBSD、
OpenBSD、
NetBSD、DarwinなどのBSD系システムで採用されているものの2つがあります。どちらも自由ソフトウェアとして提供され、オープンソースで開発されています。
振る舞い
Unix系のシステムには、現在作業中の
ディレクトリを示す「カレント
ディレクトリ」という概念があります。lsコマンドは、引数なしで実行すると、このカレント
ディレクトリ内のファイルと
ディレクトリの一覧を表示します。特定の
ディレクトリを指定すると、その
ディレクトリの内容が表示されます。また、複数のファイルや
ディレクトリを引数として指定することも可能です。
通常、ドット「.」で始まるファイル(隠しファイル)は表示されませんが、`-a`オプションを使用することで、これらを含めた全てのファイルを表示できます。lsコマンドは、デフォルトではファイル名のみを表示しますが、さまざまなオプションを用いることで、ファイルのタイプ、パーミッション、サイズ、更新日時などの詳細な情報を表示することが可能です。
主要なオプション
lsコマンドには多くのオプションがありますが、ここでは特によく使われるものを紹介します。
`-l`:ファイルの詳細情報を表示します。ファイルタイプ、パーミッション、ハードリンク数、所有者、グループ、サイズ、日付、ファイル名などが表示されます。
`-F`:ファイルタイプを表す記号をファイル名の末尾に付加します。例えば、実行可能ファイルには`
`、ディレクトリには`/`が付きます。
`-a`:ドットファイルを含むすべてのファイルを表示します。
`-R`:サブディレクトリ内のファイルも再帰的に表示します。これにより、ディレクトリ構造全体を把握することができます。
また、環境によっては、`--color`(GNU ls)または`-G`(FreeBSD ls)オプションを使用することで、ファイルタイプによって色分けして表示することが可能です。
出力例
lsコマンドの`-l`オプションを用いた出力例を以下に示します。
brw-rr 1 unixguy staff 64, 64 Jan 27 05:52 block
crw-rr 1 unixguy staff 64, 255 Jan 26 13:57 character
- -rw-rr 1 unixguy staff 290 Jan 26 14:08 compressed.gz
- -rw-rr 1 unixguy staff 331836 Jan 26 14:06 data.ppm
drwxrwx--x 2 unixguy staff 48 Jan 26 11:28 dir
- -rwxrwx--x 1 unixguy staff 29 Jan 26 14:03 executable
prw-rr 1 unixguy staff 0 Jan 26 11:50 fifo
lrwxrwxrwx 1 unixguy staff 3 Jan 26 11:44 link -> dir
- -rw-rw---- 1 unixguy staff 217 Jan 26 14:08 regularfile
上記出力例では、各ファイルやディレクトリのタイプ(b:ブロックデバイス、c:キャラクタデバイス、-:通常ファイル、d:ディレクトリ、l:シンボリックリンクなど)、パーミッション、所有者、グループ、サイズ、最終更新日時、ファイル名が表示されています。
使用例
次に、lsコマンドの使用例を示します。
$ pwd
/home/fred
$ ls -l
drwxrr 1 fred editors 4096 drafts
- -rw-rr 1 fred editors 30405 edition-32
- -r-xr-xr-x 1 fred fred 8460 edit
$ ls -F
drafts/
edition-32
edit
この例では、ユーザーfredのホーム
ディレクトリに、`drafts`という
ディレクトリ、`edition-32`という通常のファイル、`edit`という実行可能ファイルが存在していることが分かります。
lsコマンドの`-l`オプションの出力に現れるパーミッション表示は、ファイルに対するユーザー、グループ、その他のユーザーのアクセス権を示します。例えば、`-rw-r
r` は、ファイルの所有者には読み書きの権限があり、グループメンバーおよびその他のユーザーには読み取り権限のみがあることを示します。最初の文字はファイルタイプを示し、残りの3文字ごとのブロックは、それぞれ所有者、グループ、その他のユーザーに対するパーミッションを表します。`r`は読み取り権限、`w`は書き込み権限、`x`は実行権限を表します。
関連情報
`sl` (UNIX)
ファイルパーミッション
外部リンク
ls(1) - Linux JM Project
ls(1) - OpenBSD
ls(1) - HMUGリファレンスマニュアル
ls(1) - Debianリファレンスマニュアル
*
ls ドキュメント(GNUプロジェクト版、英語)