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


コメント