ls(エルエス)はPOSIXおよびSingle UNIX Specificationで規定されているコマンドである。ファイルの一覧を表示するコマンドである。 lsはAT&T UNIXの最初のバージョンから存在していた。その名称は、Multicsに存在した類似のコマンドから継承された。現在使われている主な実装には、フリーソフトウェア財団によるものとFreeBSD、OpenBSD、NetBSD、DarwinなどのBSD系システムで用いられているものの2つがある。どちらもフリーソフトウェアであり、オープンソースである。 Unix系のシステムには、現在ユーザが作業を行っているファイルシステム上の場所を表す「カレントディレクトリ」という概念がある。lsは引数を伴わずに起動された場合、カレントディレクトリのファイルの一覧を表示する。引数にカレントディレクトリ以外のディレクトリを指定した場合、そのディレクトリのファイル一覧を表示する。また、ディレクトリやファイルのリストを引数として指定することもでき、その場合はすべての指定されたファイルと、ディレクトリ内のファイルの一覧を表示する。 そのディレクトリ自身を示す「.」や親ディレクトリの「..」をはじめ、各種設定ファイル等のファイル名の慣例である「.」で始まるファイル名をもつファイル(ドットファイル)は標準では表示されず、表示するには明示的に-aオプションを指定する必要がある。 オプションが指定されなかった場合、lsはファイル名のみを表示する。しかし、この形式ではファイルタイプ、パーミッション、サイズなどの情報がわからない。lsには表示形式を変更するオプションが多く存在するが、もっとも一般的なものは次に挙げたものである。 一部の環境では、--color(GNU ls)または-G(FreeBSD ls)オプションを指定するとファイルタイプによって異なる色で表示される。表示する色を決定する際、FreeBSDのlsではファイルタイプとパーミッションのみで決定されるが、GNUのlsではそれに加え拡張子によっても色を変えることができる。 このようなオプションを指定した場合、lsの出力は次のようになる。 brw-r--r-- 1 unixguy staff 64, 64 Jan 27 05:52 block crw-r--r-- 1 unixguy staff 64, 255 Jan 26 13:57 character -rw-r--r-- 1 unixguy staff 290 Jan 26 14:08 compressed.gz -rw-r--r-- 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-r--r-- 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 lsには他にも多くのオプションが存在し、それらはmanページで調べることができる。 次の例は2つの異なる引数を与えられた時のlsコマンドの出力の違いを示している。$ pwd/home/fred$ ls -ldrwxr--r-- 1 fred editors 4096 drafts-rw-r--r-- 1 fred editors 30405 edition-32-r-xr-xr-x 1 fred fred 8460 edit$ ls -Fdrafts/ edition-32 edit* ここでユーザfredのホームディレクトリにはdraftsというディレクトリ、edition-32という通常のファイル、editという実行可能ファイルが存在することがわかる。lsはユーザ、グループ、世界(それ以外)がファイルに対しどのようなパーミッション(権限)を持っているかを表現するために特別な記法を使っている。 パーミッション部分の最初の文字はファイルの種別を表している。 文字意味 残りの部分は3文字ごとのブロックに分けられ、r、w、xはそれぞれ読み込み、書き込み、実行の権限が存在することを意味する。最初のブロックは所有ユーザの、2つめのブロックは所属しているグループの、3つめのブロックはその他の場合のパーミッションを表している。上の例では、ユーザfredはedition-32を読み書きできるが、実行はできない。editorsグループのメンバーはそれ以外のユーザと同様、edition-32を読めるが、書き込んだり実行したりすることはできない。詳しくはファイルパーミッションを参照のこと。
目次
1 歴史
2 振る舞い
3 使用例
4 関連項目
5 外部リンク
歴史
振る舞い
-l :長い形式で表示する。ファイルタイプ、パーミッション、ハードリンクの数、所有者、グループ、サイズ、日付、ファイル名。
-F :ファイルの性質を表す文字をファイル名の末尾に付加する。例えば「*」は実行可能ファイル、「/」はディレクトリを表し、通常のファイルは何も付加されない。
-a :「.」で始まるファイル名のものを含め、ディレクトリ内のすべてのファイルを表示する。
-R :サブディレクトリ内のファイルを再帰的に表示する。従って、ls -R /とするとシステムに存在するすべてのファイルを表示する。
使用例
-通常のファイル
bブロックデバイス
cキャラクタデバイス
dディレクトリ
lシンボリックリンク
pまたは=名前つきパイプまたはFIFO
sソケット
関連項目
sl (UNIX)
外部リンク
ls(1) - Linux JM Project
⇒ls(1) - FreeBSD jpmanプロジェクト
ls(1)
⇒ls(1) - SunOS リファレンスマニュアル
⇒ls(1) - HMUGリファレンスマニュアル(英語)
⇒ls ドキュメント(GNUプロジェクト版、英語)
表
話
編
歴
Unixコマンド
ファイルとファイルシステム管理
cat
chmod
chown
chgrp
cksum
cmp
cp
dd
du(英語版)
df(英語版)
file
fsck
fuser(英語版)
ln
ls
lsof
mkdir
mount
mv
pax
pwd
rm
rmdir
size
split
tee
touch
type
umask(英語版)
プロセス管理
at
bg
chroot
cron
fg
kill
killall
nice
pgrep
pidof
pkill
ps
pstree(英語版)
reboot
shutdown
time
top
ユーザ管理/環境
clear
env
exit
finger
history(英語版)
id
logname(英語版)
mesg(英語版)
passwd
su
sudo
uptime
talk
tput(英語版)
uname
w
wall(英語版)
who
whoami
write
テキスト処理
awk
banner
basename
comm(英語版)
csplit(英語版)
cut
diff
dirname
ed
ex(英語版)
fmt
fold(英語版)
head
iconv
join(英語版)
less
more
nkf
nl(英語版)
paste(英語版)