今回のお題
タイトルの通り、LinuxOSのls
コマンドについてまとめます。
初心者用(自分含む)です。
基本
オプションなしの場合には、カレントディレクトリの中身を一覧表示。
[root@1db2f41f69b3 /]# ls
# 結果
anaconda-post.log dev home lib64 mnt proc run srv tmp var
bin etc lib media opt root sbin sys usr
ディレクトリの指定
ディレクトリまでのパスを指定することで、カレントディレクトリではなくそのディレクトリの中身を表示することも可能。
[root@1db2f41f69b3 /]# ls var/www/html/
# 結果
test.php
オプション達
# . で始まるディレクトリやファイルも含めて表示
[root@1db2f41f69b3 /]# ls -a
. .dockerenv bin etc lib media opt root sbin sys usr
.. anaconda-post.log dev home lib64 mnt proc run srv tmp var
# 詳細表示
[root@1db2f41f69b3 /]# ls -l
# 結果
total 56
-rw-r--r-- 1 root root 12114 Nov 13 2020 anaconda-post.log
lrwxrwxrwx 1 root root 7 Nov 13 2020 bin -> usr/bin
drwxr-xr-x 5 root root 360 Nov 27 01:47 dev
drwxr-xr-x 1 root root 4096 Nov 27 01:47 etc
drwxr-xr-x 2 root root 4096 Apr 11 2018 home
lrwxrwxrwx 1 root root 7 Nov 13 2020 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Nov 13 2020 lib64 -> usr/lib64
drwxr-xr-x 2 root root 4096 Apr 11 2018 media
drwxr-xr-x 2 root root 4096 Apr 11 2018 mnt
drwxr-xr-x 2 root root 4096 Apr 11 2018 opt
dr-xr-xr-x 176 root root 0 Nov 27 01:47 proc
dr-xr-x--- 1 root root 4096 Nov 27 01:49 root
drwxr-xr-x 11 root root 4096 Nov 13 2020 run
lrwxrwxrwx 1 root root 8 Nov 13 2020 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Nov 27 01:47 sys
drwxrwxrwt 7 root root 4096 Nov 13 2020 tmp
drwxr-xr-x 13 root root 4096 Nov 13 2020 usr
drwxr-xr-x 1 root root 4096 Nov 26 06:23 var
ログの意味については後述。
# 更新日時順に表示
[root@1db2f41f69b3 /]# ls -t
root proc etc anaconda-post.log tmp lib sbin home mnt srv
dev sys var run bin lib64 usr media opt
# ファイル・ディレクトリの種類を区別して表示
[root@1db2f41f69b3 /]# ls -F
anaconda-post.log dev/ home/ lib64@ mnt/ proc/ run/ srv/ tmp/ var/
bin@ etc/ lib@ media/ opt/ root/ sbin@ sys/ usr/
-F
オプションにより末尾に付加される記号の意味については以下を参照。
記号 | 意味 |
---|---|
@ | シンボリックリンク |
/ | ディレクトリ |
* | 実行可能ファイル(.exe)など |
# サブディレクトリの中身も含めて表示
[root@1db2f41f69b3 /]# ls -R
# 結果(一部抜粋)
./usr/lib64/python2.7/lib2to3/fixes:
__init__.py fix_getcwdu.py fix_metaclass.py fix_repr.py
オプションについては複数を組み合わせることも可能。
[root@1db2f41f69b3 /]# ls -F -R
# 結果(一部抜粋)
./usr/lib64/python2.7/site-packages:
README libxml2.pyo
_dbus_bindings.so* libxml2mod.so*
_dbus_glib_bindings.so* lzma.so*
_sqlitecache.so* pycurl-7.19.0-py2.7.egg-info
curl/ pycurl.so*
dbus/ pygobject-3.22.0-py2.7-linux-x86_64.egg-info
ls -lの出力結果の見方
ls -l
コマンドの結果は以下のようになっている。
# 結果の一例
drwxr-xr-x 5 root root 360 Nov 27 01:47 dev
# 10桁の英字(詳細は以下)" "ハードリンクの数" "作成者" "所属グループ" "容量" "最終更新日時" "プログラム名(リンクの場合はリンク先も)"
最初の10桁のアルファベットはプログラムの種類とユーザーごとのアクセス権を表している。
先頭の1文字はプログラムの種類であり、ファイルなら-
, ディレクトリならd
, リンクならl
になる。
また、その後の9文字については、作成者、グループユーザー、その他のユーザーのアクセス権限を表す記号(以下参照)が3文字ごとに繰り返されており、例えば上記例のdrwxr-xr-x
であれば
プログラムの種類: ディレクトリ
作成者の実行権限: 読み込み・書き込み・実行全て可能
グループの権限: 読み込みと実行は可能。書き込みは不可。
その他のユーザーの権限: 読み込みと実行は可能。書き込みは不可。
となる。
【参考:アクセス権限を表す記号】
記号 | 意味 |
---|---|
r | 読み込み可能 |
w | 書き込み可能 |
x | 実行可能 |
- | 権限なし |