ls

ls (list directory contents) はファイルの一覧を表示するLinux/Unixコマンドである。

構文

ls options path

オプション

以下に示すオプションを ls コマンドに指定できる。

-a
隠しファイルや隠しディレクトリも出力する。通常、ls コマンドはピリオドで始まるファイル名やディレクトリ名は表示しないが、このオプションを指定すると、これらも出力対象とする。.(カレントディレクトリ)や ..(親ディレクトリ)も出力される。
$ ls
src
$ ls -a
. .. .bashrc .gitconfig src
-A
.(カレントディレクトリ)や ..(親ディレクトリ)を出力しない。-a オプションと組み合わせて使う。
$ ls -a -A
.bashrc .gitconfig src
--all
POSIX 形式の -a オプションと同じ意味を持つ GNU 形式のオプション。
--almost-all
POSIX 形式の -A オプションと同じ意味を持つ GNU 形式のオプション。--all オプションと組み合わせて使う。
--author
各ファイルの作成者を表示する。-l オプションと組み合わせて使う。
-d
pathにディレクトリを指定した場合、そのディレクトリの内容ではなく、ディレクトリ名だけを出力する。
-e
-lと似ているが、時刻を秒単位で出力する。
-l
ロングリストフォーマットを使う。
出力結果の見方
出力結果 owner group other
rwxrwxrwx read write execute read write execute read write execute
rwxr-xr-x read write execute read - execute read - execute
rw-rw-r-- read write - read write - read - -
rw-r--r-- read write - read - - read - -
r--r--r-- read - - read - - read - -

ファイルの所有者、ファイルの所有者が属するグループのユーザ、その他のユーザそれぞれについて、読み込み、書き込み、実行ができるかどうかが出力される。

最初の1文字の意味を以下に示す。

文字 説明
b ブロックデバイス
c キャラクタデバイス
d ディレクトリ
l リンク
- その他

Linuxは、ハードウェア上のデバイスをファイルとして表現している。ファイルと同様に、read()やwrite()を使ってデバイスを読み書きできる。通常、デバイスにアクセスできるのは、スーパーユーザのみである。

Linuxではファイルとしてアクセスできるデバイスをキャラクタデバイスとブロックデバイスという2種類に分類している。

キャラクタデバイスとは、読み書きはできるが、ランダムアクセス(シーク)ができないデバイスのことである。例えば、次に示すデバイスである。

ブロックデバイスとは、読み書きに加えてランダムアクセスができるデバイスのことである。例えば、次に示すデバイスである。

デバイスは /dev にマウントされている。

$ ls -l /dev
drwxr-xr-x   4 root root           560 Oct 11 16:38 input
brw-rw----   1 root disk      7,     0 Oct 11 16:38 loop0
lrwxrwxrwx   1 root root            15 Oct 11 16:38 stderr -> /proc/self/fd/2
lrwxrwxrwx   1 root root            15 Oct 11 16:38 stdin -> /proc/self/fd/0
lrwxrwxrwx   1 root root            15 Oct 11 16:38 stdout -> /proc/self/fd/1
crw--w----   1 root tty       4,     0 Oct 11 16:38 tty0
crw--w----   1 root tty       4,     1 Oct 11 16:38 tty1
--help
ヘルプを表示してコマンドを終了する。
--version
バージョン上表を表示してコマンドを終了する。

使用例

ls コマンドの引数に正規表現を使うことができる。

ファイル名が「foo」で始まるファイルの一覧を表示する。

ls foo*

ファイル名が「foo」で始まるものを除いたファイルの一覧を表示する。

ls !(foo*)

ファイル名が「foo」又は「bar」で始まるものを除いたファイルの一覧を表示する。

ls !(foo*|bar*)

終了ステータス

コマンドが終了すると、親プロセスへ終了ステータスが渡される。ls コマンドの終了コードは、以下に示すいずれかの値である。

0
成功
$ ls
com  download  src  tmp
$ echo $?
0
1
小さな問題(例:サブディレクトリにアクセスできない)
2
深刻なトラブル(例:コマンドライン引数にアクセスできない)
$ ls example
ls: cannot access 'example': No such file or directory
$ echo $?
2

関連記事