ls (list directory contents) はファイルの一覧を表示するLinux/Unixコマンドである。
ls options path
以下に示すオプションを ls コマンドに指定できる。
.
(カレントディレクトリ)や ..
(親ディレクトリ)も出力される。
$ ls
src
$ ls -a
. .. .bashrc .gitconfig src
.
(カレントディレクトリ)や ..
(親ディレクトリ)を出力しない。-a
オプションと組み合わせて使う。
$ ls -a -A
.bashrc .gitconfig src
--all
オプションと組み合わせて使う。-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
ls コマンドの引数に正規表現を使うことができる。
ファイル名が「foo」で始まるファイルの一覧を表示する。
ls foo*
ファイル名が「foo」で始まるものを除いたファイルの一覧を表示する。
ls !(foo*)
ファイル名が「foo」又は「bar」で始まるものを除いたファイルの一覧を表示する。
ls !(foo*|bar*)
コマンドが終了すると、親プロセスへ終了ステータスが渡される。ls コマンドの終了コードは、以下に示すいずれかの値である。
$ ls
com download src tmp
$ echo $?
0
$ ls example
ls: cannot access 'example': No such file or directory
$ echo $?
2