lsコマンドを多用する割に、オプションの意味や使い方をきちんと覚えていないかったので、ここにまとめておく。
ls の典型オプション
-l
: long。ls
が詳細形式で表示する。-a
: all。ls
が隠しファイルを含めて表示する。-h
: human-readable。ls
がサイズを人間向け表記にする。-t
: time。ls
が更新時刻順に並べる。-r
: reverse。ls
が並び順を逆にする。-R
: recursive。ls
が下位ディレクトリも再帰表示する。
(参考)-S
: size。ls
がサイズ順に並べる。-d
: directory。ls
がディレクトリの中身ではなくそのものを表示する。-i
: inode。ls
がinode番号を表示する。-n
: numeric。ls
が所有者やグループを数値IDで表示する。-F
: file-type indicator。ls
が種別記号(/ * @ | =>
)を付ける。
結論: 代表的な ls
オプションごとに、入力コマンドと想定出力を示す。出力はサンプルだ。環境やロケールで細部は変化する。
前提: カレント ~/demo
に以下が存在すると仮定する。.env .hidden README.md app.py script.sh* big.iso app.sock latest -> logs/ bin/ data/ logs/
-l
(long)
入力
ls -l
出力
total 2052
drwxr-xr-x 2 user user 4096 Sep 14 10:12 bin
-rw------- 1 user user 12 Sep 14 09:42 .env
-rw-r--r-- 1 user user 0 Sep 14 09:40 .hidden
lrwxrwxrwx 1 user user 4 Sep 14 10:20 latest -> logs
drwxr-xr-x 5 user user 4096 Sep 14 10:00 data
drwxr-xr-x 3 user user 4096 Sep 14 10:15 logs
-rw-r--r-- 1 user user 1234 Sep 14 09:55 README.md
-rwxr-xr-x 1 user user 42 Sep 14 10:05 script.sh
-rw-r--r-- 1 user user 98 Sep 14 09:50 app.py
srw-rw---- 1 user user 0 Sep 14 10:25 app.sock
-rw-r--r-- 1 user user 2097152 Sep 14 10:30 big.iso
-a
(all)
入力
ls -a
出力
. .. .env .hidden README.md app.py script.sh big.iso app.sock latest bin data logs
-h
(human-readable)※効果を見やすくするため -l
と併用
入力
ls -lh
出力
total 2.1M
-rw-r--r-- 1 user user 1.2K Sep 14 09:55 README.md
-rwxr-xr-x 1 user user 42 Sep 14 10:05 script.sh
-rw-r--r-- 1 user user 98 Sep 14 09:50 app.py
-rw-r--r-- 1 user user 2.0M Sep 14 10:30 big.iso
...
-t
(timeで降順)
入力
ls -lt
出力
-rw-r--r-- 1 user user 2097152 Sep 14 10:30 big.iso
srw-rw---- 1 user user 0 Sep 14 10:25 app.sock
lrwxrwxrwx 1 user user 4 Sep 14 10:20 latest -> logs
drwxr-xr-x 3 user user 4096 Sep 14 10:15 logs
drwxr-xr-x 2 user user 4096 Sep 14 10:12 bin
-rwxr-xr-x 1 user user 42 Sep 14 10:05 script.sh
drwxr-xr-x 5 user user 4096 Sep 14 10:00 data
-rw-r--r-- 1 user user 1234 Sep 14 09:55 README.md
-rw-r--r-- 1 user user 98 Sep 14 09:50 app.py
-rw------- 1 user user 12 Sep 14 09:42 .env
-rw-r--r-- 1 user user 0 Sep 14 09:40 .hidden
-r
(reverse)※並び順を逆転
入力
ls -lr
出力
total 2052
-rw-r--r-- 1 user user 2097152 Sep 14 10:30 big.iso
srw-rw---- 1 user user 0 Sep 14 10:25 app.sock
-rw-r--r-- 1 user user 98 Sep 14 09:50 app.py
-rwxr-xr-x 1 user user 42 Sep 14 10:05 script.sh
-rw-r--r-- 1 user user 1234 Sep 14 09:55 README.md
drwxr-xr-x 5 user user 4096 Sep 14 10:00 data
drwxr-xr-x 3 user user 4096 Sep 14 10:15 logs
lrwxrwxrwx 1 user user 4 Sep 14 10:20 latest -> logs
-rw------- 1 user user 12 Sep 14 09:42 .env
-rw-r--r-- 1 user user 0 Sep 14 09:40 .hidden
drwxr-xr-x 2 user user 4096 Sep 14 10:12 bin
-R
(recursive)
入力
ls -R
出力
.:
.env .hidden README.md app.py script.sh big.iso app.sock latest bin data logs
./bin:
deploy run
./data:
input.csv out/
./data/out:
result.json
./logs:
app.log
-S
(sizeで降順)
入力
ls -lS
出力
-rw-r--r-- 1 user user 2097152 Sep 14 10:30 big.iso
-rw-r--r-- 1 user user 1234 Sep 14 09:55 README.md
-rwxr-xr-x 1 user user 42 Sep 14 10:05 script.sh
-rw-r--r-- 1 user user 98 Sep 14 09:50 app.py
srw-rw---- 1 user user 0 Sep 14 10:25 app.sock
-rw------- 1 user user 12 Sep 14 09:42 .env
-rw-r--r-- 1 user user 0 Sep 14 09:40 .hidden
drwxr-xr-x 5 user user 4096 Sep 14 10:00 data
drwxr-xr-x 3 user user 4096 Sep 14 10:15 logs
drwxr-xr-x 2 user user 4096 Sep 14 10:12 bin
lrwxrwxrwx 1 user user 4 Sep 14 10:20 latest -> logs
-d
(directory自体を表示)
入力
ls -ld data
出力
drwxr-xr-x 5 user user 4096 Sep 14 10:00 data
-i
(inode)
入力
ls -li
出力
131074 -rw------- 1 user user 12 Sep 14 09:42 .env
131075 -rw-r--r-- 1 user user 0 Sep 14 09:40 .hidden
131076 -rw-r--r-- 1 user user 1234 Sep 14 09:55 README.md
131077 -rwxr-xr-x 1 user user 42 Sep 14 10:05 script.sh
131078 -rw-r--r-- 1 user user 98 Sep 14 09:50 app.py
131079 srw-rw---- 1 user user 0 Sep 14 10:25 app.sock
131080 lrwxrwxrwx 1 user user 4 Sep 14 10:20 latest -> logs
131081 drwxr-xr-x 2 user user 4096 Sep 14 10:12 bin
131082 drwxr-xr-x 5 user user 4096 Sep 14 10:00 data
131083 drwxr-xr-x 3 user user 4096 Sep 14 10:15 logs
131084 -rw-r--r-- 1 user user 2097152 Sep 14 10:30 big.iso
-n
(numeric UID/GID)
入力
ls -ln
出力
total 2052
drwxr-xr-x 2 1000 1000 4096 Sep 14 10:12 bin
-rw------- 1 1000 1000 12 Sep 14 09:42 .env
-rw-r--r-- 1 1000 1000 0 Sep 14 09:40 .hidden
lrwxrwxrwx 1 1000 1000 4 Sep 14 10:20 latest -> logs
drwxr-xr-x 5 1000 1000 4096 Sep 14 10:00 data
drwxr-xr-x 3 1000 1000 4096 Sep 14 10:15 logs
-rw-r--r-- 1 1000 1000 1234 Sep 14 09:55 README.md
-rwxr-xr-x 1 1000 1000 42 Sep 14 10:05 script.sh
-rw-r--r-- 1 1000 1000 98 Sep 14 09:50 app.py
srw-rw---- 1 1000 1000 0 Sep 14 10:25 app.sock
-rw-r--r-- 1 1000 1000 2097152 Sep 14 10:30 big.iso
-F
(file-type indicator)
入力
ls -F
出力
.env .hidden README.md app.py script.sh* big.iso app.sock= latest@ bin/ data/ logs/
注意:
-h
はサイズ列を表示する-l
と併用すると効果が分かりやすくなる。-R
は出力量が激増しやすい。実運用では| head
などで抑制する。
コメント