ls(List)コマンドのオプションの意味メモ

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 などで抑制する。

コメント

タイトルとURLをコピーしました