サイトアイコン スグブログ

【Linux】lsコマンドの使い方!オプションなどを使用する

カウンセリング

Linuxサーバーでlsのコマンドの使い方をまとめます。

Linuxサーバーでディレクトリやファイルの表示方法での悩み
  • Linuxサーバーでディレクトリ配下のファイルも表示したい
  • ファイルの種類をわかるように表示したい
  • 更新時間順にわかりやすく表示したい

そういった悩みはないでしょうか?

というわけでディレクトリやファイルを表示する、lsコマンドのオプションなど詳しく見ていきます。

筆者はWindowsサーバーやLinuxサーバーの運用構築を11年間以上おこなってきました。その経験を元に知識を公開していきます!

Linuxサーバーでファイルなどの表示が、lsコマンドで自由自在におこなえる様になります。

Linuxサーバーでlsコマンドの使い方

Linuxサーバーでディレクトリやファイルを表示するコマンドはlsコマンドです。

[root@localhost ~]# ls
anaconda-ks.cfg  blog_test  enforcy~   memory_usage_check.log  thinclient_drives
backup           enforce~   enforcz~   sh_test                 vmstat.log
bash-completion  enforcx~   file1.txt  startup.log             workspace

現在いるディレクトリにあるディレクトリやファイルが表示されます。

しかしどれがディレクトリなのかもわかりずらいし、更新日時やファイルサイズなども表示して欲しい時もあります。

そんな時にオプションが必要となります。

lsコマンドのオプションについて

lsコマンドのオプションについてまとめます。

lsコマンドのオプション効果
-lディレクトリやファイルの詳細を表示
-1ディレクトリやファイルを一列に表示
-a全てのディレクトリやファイルを表示。隠しファイルなど
-Rディレクトリ配下も表示
-r順序を逆に表示。デフォルトは名前の順
-t更新日時が新しい順で表示
–full-time更新日時を詳細に表示
-Sファイルサイズ順に表示
-hファイルサイズを丁度良い単位で表示
-ii-node番号を表示
-Fファイルの種類を表示
Linuxでlsコマンドのオプション一覧

ディレクトリやファイルの詳細を表示

lsコマンドのlオプションで、ディレクトリやファイルの詳細を表示する事が可能です。

[root@localhost ~]# ls -l
合計 80
-rw-------.  1 root root  1257  1月  7  2023 anaconda-ks.cfg
drwxr-xr-x.  2 root root     6  4月 25  2023 backup
drwxr-xr-x.  3 root root    48  4月 13  2023 bash-completion
drwxr-xr-x.  2 root root    75 12月  4 19:32 blog_test
-rw-r--r--.  1 root root     1 11月 18 23:24 enforce~
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcx~
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcy~
-rw-r--r--.  1 root root     1 11月 19 00:42 enforcz~
-rw-r--r--   1 root root    42  4月 25 23:01 file1.txt
-rw-r--r--   1 root root     0  5月  6 23:22 link.ln
-rw-r--r--   1 root root   911  4月 29 18:29 memory_usage_check.log
drwxr-xr-x. 12 root root  4096  4月 27  2023 sh_test
-rw-r--r--   1 root root     0  5月  4 17:27 startup.log
drwxr-xr-x   2 root root    19  5月  8 18:42 symbolic-link
drwxr-xr-x   2 root root     6  5月  8 19:48 symbolic-link-dir
-rw-r--r--   1 root root    29  5月  8 18:24 symbolic-link-file1
lrwxrwxrwx   1 root root    25  5月  8 21:08 symbolic-link-file1.ln -> /root/symbolic-link-file1
-rw-r--r--   1 root root    29  5月  8 18:33 symbolic-link-file2
drwxr-xr-t   2 root root     6 12月 21 22:58 thinclient_drives
-rw-r--r--   1 root root 28327  4月 29 19:21 vmstat.log
drwxr-xr-x.  2 root root  4096  4月 24  2023 workspace

オプション無しと比べると、パーミッションや所有するユーザーやグループ、ファイルサイズ、更新日付などが表示されています。

ディレクトリやファイルを一列に表示

lsコマンドの1オプションで、ディレクトリやファイルを一列に表示する事が可能です。

[root@localhost ~]# ls -1
anaconda-ks.cfg
backup
bash-completion
blog_test
enforce~
enforcx~
enforcy~
enforcz~
file1.txt
link.ln
memory_usage_check.log
sh_test
startup.log
symbolic-link
symbolic-link-dir
symbolic-link-file1
symbolic-link-file1.ln
symbolic-link-file2
thinclient_drives
vmstat.log
workspace

オプション無しと比べると、縦並びで見やすくなっています。

全てのディレクトリやファイルを表示

lsコマンドのaオプションで、全てのディレクトリやファイルを表示する事が可能です。

[root@localhost ~]# ls -a
.              .cshrc          .rnd              bash-completion  link.ln                 symbolic-link-file1.ln
..             .dbus           .ssh              blog_test        memory_usage_check.log  symbolic-link-file2
.Xauthority    .file1.txt.swo  .tcshrc           enforce~         sh_test                 thinclient_drives
.bash_history  .file1.txt.swp  .vnc              enforcx~         startup.log             vmstat.log
.bash_logout   .local          .xsession-errors  enforcy~         symbolic-link           workspace
.bash_profile  .mysql_history  anaconda-ks.cfg   enforcz~         symbolic-link-dir
.bashrc        .pki            backup            file1.txt        symbolic-link-file1

オプション無しと比べると、ファイル数などが増えています。隠しファイルも表示されています。

「.」から始まるファイルは隠しファイルです。

ディレクトリ配下も表示

lsコマンドのRオプションで、ディレクトリ配下も全て表示する事が可能です。

[root@localhost ~]# ls -R
.:
anaconda-ks.cfg  enforce~  file1.txt               startup.log          symbolic-link-file1.ln  workspace
backup           enforcx~  link.ln                 symbolic-link        symbolic-link-file2
bash-completion  enforcy~  memory_usage_check.log  symbolic-link-dir    thinclient_drives
blog_test        enforcz~  sh_test                 symbolic-link-file1  vmstat.log

./backup:

./bash-completion:
bash_completion  completions

./bash-completion/completions:
findgrep_getopt  trash

./blog_test:
comment_out.sh  echo.sh  test.txt  text.txt

./sh_test:
args.sh

./sh_test/16test:
16nonetest.txt  16nonetest2.txt

./sh_test/18test:
18_testtext.txt

./sh_test/64_backup_after:

./sh_test/64_backup_before:
back1  back2

./sh_test/66_log:
66_1.txt  66_2.txt

./sh_test/67_myapp:
67_app1.txt  67_app2.txt  67_test.svn

./sh_test/74_dir1:
file1  file2  file3  file_ex

./sh_test/74_dir2:
file1  file2  file3

./sh_test/file_exist:
file_exist.sh  file_exist.txt

./sh_test/output:
59_body.txt  59_menu.txt

./symbolic-link:
link2

./symbolic-link-dir:

./thinclient_drives:

./workspace:
test.txt

配下のファイルが一覧された後に、ディレクトリ配下のファイルまで表示されています。

順序を逆に表示

lsコマンドのrオプションで、ディレクトリの表示順を逆にできます。

[root@localhost ~]# ls -l
合計 80
-rw-------.  1 root root  1257  1月  7  2023 anaconda-ks.cfg
drwxr-xr-x.  2 root root     6  4月 25  2023 backup
drwxr-xr-x.  3 root root    48  4月 13  2023 bash-completion
drwxr-xr-x.  2 root root    75 12月  4 19:32 blog_test
-rw-r--r--.  1 root root     1 11月 18 23:24 enforce~
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcx~
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcy~
-rw-r--r--.  1 root root     1 11月 19 00:42 enforcz~
-rw-r--r--   1 root root    42  4月 25 23:01 file1.txt
-rw-r--r--   1 root root     0  5月  6 23:22 link.ln
-rw-r--r--   1 root root   911  4月 29 18:29 memory_usage_check.log
drwxr-xr-x. 12 root root  4096  4月 27  2023 sh_test
-rw-r--r--   1 root root     0  5月  4 17:27 startup.log
drwxr-xr-x   2 root root    19  5月  8 18:42 symbolic-link
drwxr-xr-x   2 root root     6  5月  8 19:48 symbolic-link-dir
-rw-r--r--   1 root root    29  5月  8 18:24 symbolic-link-file1
lrwxrwxrwx   1 root root    25  5月  8 21:08 symbolic-link-file1.ln -> /root/symbolic-link-file1
-rw-r--r--   1 root root    29  5月  8 18:33 symbolic-link-file2
drwxr-xr-t   2 root root     6 12月 21 22:58 thinclient_drives
-rw-r--r--   1 root root 28327  4月 29 19:21 vmstat.log
drwxr-xr-x.  2 root root  4096  4月 24  2023 workspace
[root@localhost ~]# ls -rl
合計 80
drwxr-xr-x.  2 root root  4096  4月 24  2023 workspace
-rw-r--r--   1 root root 28327  4月 29 19:21 vmstat.log
drwxr-xr-t   2 root root     6 12月 21 22:58 thinclient_drives
-rw-r--r--   1 root root    29  5月  8 18:33 symbolic-link-file2
lrwxrwxrwx   1 root root    25  5月  8 21:08 symbolic-link-file1.ln -> /root/symbolic-link-file1
-rw-r--r--   1 root root    29  5月  8 18:24 symbolic-link-file1
drwxr-xr-x   2 root root     6  5月  8 19:48 symbolic-link-dir
drwxr-xr-x   2 root root    19  5月  8 18:42 symbolic-link
-rw-r--r--   1 root root     0  5月  4 17:27 startup.log
drwxr-xr-x. 12 root root  4096  4月 27  2023 sh_test
-rw-r--r--   1 root root   911  4月 29 18:29 memory_usage_check.log
-rw-r--r--   1 root root     0  5月  6 23:22 link.ln
-rw-r--r--   1 root root    42  4月 25 23:01 file1.txt
-rw-r--r--.  1 root root     1 11月 19 00:42 enforcz~
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcy~
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcx~
-rw-r--r--.  1 root root     1 11月 18 23:24 enforce~
drwxr-xr-x.  2 root root    75 12月  4 19:32 blog_test
drwxr-xr-x.  3 root root    48  4月 13  2023 bash-completion
drwxr-xr-x.  2 root root     6  4月 25  2023 backup
-rw-------.  1 root root  1257  1月  7  2023 anaconda-ks.cfg

「ls -l」コマンドと「ls-rl」コマンドを比較すると、表示順が逆になっているのがわかります。

更新日時が新しい順で表示

lsコマンドのtオプションで、更新日時順に表示する事が可能です。

[root@localhost ~]# ls -tl
合計 80
lrwxrwxrwx   1 root root    25  5月  8 21:08 symbolic-link-file1.ln -> /root/symbolic-link-file1
drwxr-xr-x   2 root root     6  5月  8 19:48 symbolic-link-dir
drwxr-xr-x   2 root root    19  5月  8 18:42 symbolic-link
-rw-r--r--   1 root root    29  5月  8 18:33 symbolic-link-file2
-rw-r--r--   1 root root    29  5月  8 18:24 symbolic-link-file1
-rw-r--r--   1 root root     0  5月  6 23:22 link.ln
-rw-r--r--   1 root root     0  5月  4 17:27 startup.log
-rw-r--r--   1 root root 28327  4月 29 19:21 vmstat.log
-rw-r--r--   1 root root   911  4月 29 18:29 memory_usage_check.log
-rw-r--r--   1 root root    42  4月 25 23:01 file1.txt
drwxr-xr-t   2 root root     6 12月 21 22:58 thinclient_drives
drwxr-xr-x.  2 root root    75 12月  4 19:32 blog_test
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcx~
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcy~
-rw-r--r--.  1 root root     1 11月 19 00:42 enforcz~
-rw-r--r--.  1 root root     1 11月 18 23:24 enforce~
drwxr-xr-x. 12 root root  4096  4月 27  2023 sh_test
drwxr-xr-x.  2 root root     6  4月 25  2023 backup
drwxr-xr-x.  2 root root  4096  4月 24  2023 workspace
drwxr-xr-x.  3 root root    48  4月 13  2023 bash-completion
-rw-------.  1 root root  1257  1月  7  2023 anaconda-ks.cfg

更新日時が新しい順に表示されています。

更新日時を詳細に表示

先程のtオプションでは更新日時が月と日だけで詳細な更新日時がわかりません。そんなときは「–full-time」オプションをつけてあげましょう!

[root@localhost ~]# ls --full-time -t
合計 80
lrwxrwxrwx   1 root root    25 2024-05-08 21:08:30.984000000 +0900 symbolic-link-file1.ln -> /root/symbolic-link-file1
drwxr-xr-x   2 root root     6 2024-05-08 19:48:39.173000000 +0900 symbolic-link-dir
drwxr-xr-x   2 root root    19 2024-05-08 18:42:02.484000000 +0900 symbolic-link
-rw-r--r--   1 root root    29 2024-05-08 18:33:17.071000000 +0900 symbolic-link-file2
-rw-r--r--   1 root root    29 2024-05-08 18:24:55.993000000 +0900 symbolic-link-file1
-rw-r--r--   1 root root     0 2024-05-06 23:22:53.597000000 +0900 link.ln
-rw-r--r--   1 root root     0 2024-05-04 17:27:30.070000000 +0900 startup.log
-rw-r--r--   1 root root 28327 2024-04-29 19:21:45.766000000 +0900 vmstat.log
-rw-r--r--   1 root root   911 2024-04-29 18:29:59.609000000 +0900 memory_usage_check.log
-rw-r--r--   1 root root    42 2024-04-25 23:01:15.694000000 +0900 file1.txt
drwxr-xr-t   2 root root     6 2023-12-21 22:58:46.774000000 +0900 thinclient_drives
drwxr-xr-x.  2 root root    75 2023-12-04 19:32:23.632000000 +0900 blog_test
-rw-r--r--.  1 root root     1 2023-11-19 00:43:44.000000000 +0900 enforcx~
-rw-r--r--.  1 root root     1 2023-11-19 00:43:17.000000000 +0900 enforcy~
-rw-r--r--.  1 root root     1 2023-11-19 00:42:58.000000000 +0900 enforcz~
-rw-r--r--.  1 root root     1 2023-11-18 23:24:08.000000000 +0900 enforce~
drwxr-xr-x. 12 root root  4096 2023-04-27 10:24:18.580000000 +0900 sh_test
drwxr-xr-x.  2 root root     6 2023-04-25 11:21:39.897000000 +0900 backup
drwxr-xr-x.  2 root root  4096 2023-04-24 17:36:35.843000000 +0900 workspace
drwxr-xr-x.  3 root root    48 2023-04-13 14:30:01.922000000 +0900 bash-completion
-rw-------.  1 root root  1257 2023-01-07 20:59:41.775000000 +0900 anaconda-ks.cfg

更新日時が詳細に表示されて、新しい順になっている事が確認しやすくなりました。

ファイルサイズ順に表示

lsコマンドのSオプションで、ファイルサイズ順に表示する事が可能です。

[root@localhost ~]# ls -Sl
合計 80
-rw-r--r--   1 root root 28327  4月 29 19:21 vmstat.log
drwxr-xr-x. 12 root root  4096  4月 27  2023 sh_test
drwxr-xr-x.  2 root root  4096  4月 24  2023 workspace
-rw-------.  1 root root  1257  1月  7  2023 anaconda-ks.cfg
-rw-r--r--   1 root root   911  4月 29 18:29 memory_usage_check.log
drwxr-xr-x.  2 root root    75 12月  4 19:32 blog_test
drwxr-xr-x.  3 root root    48  4月 13  2023 bash-completion
-rw-r--r--   1 root root    42  4月 25 23:01 file1.txt
-rw-r--r--   1 root root    29  5月  8 18:24 symbolic-link-file1
-rw-r--r--   1 root root    29  5月  8 18:33 symbolic-link-file2
lrwxrwxrwx   1 root root    25  5月  8 21:08 symbolic-link-file1.ln -> /root/symbolic-link-file1
drwxr-xr-x   2 root root    19  5月  8 18:42 symbolic-link
drwxr-xr-x.  2 root root     6  4月 25  2023 backup
drwxr-xr-x   2 root root     6  5月  8 19:48 symbolic-link-dir
drwxr-xr-t   2 root root     6 12月 21 22:58 thinclient_drives
-rw-r--r--.  1 root root     1 11月 18 23:24 enforce~
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcx~
-rw-r--r--.  1 root root     1 11月 19 00:43 enforcy~
-rw-r--r--.  1 root root     1 11月 19 00:42 enforcz~
-rw-r--r--   1 root root     0  5月  6 23:22 link.ln
-rw-r--r--   1 root root     0  5月  4 17:27 startup.log

ファイルサイズが大きい順に表示されました。ディスク領域圧迫の原因を調査する場合によく使用します。

Linuxでディスク容量が圧迫されて、拡張したい方は以下の記事を参照下さい。

ファイルサイズを丁度良い単位で表示

lsコマンドのhオプションで、ファイルサイズを丁度良い単位で表示する事が可能です。

[root@localhost ~]# ls -hSl
合計 80K
-rw-r--r--   1 root root  28K  4月 29 19:21 vmstat.log
drwxr-xr-x. 12 root root 4.0K  4月 27  2023 sh_test
drwxr-xr-x.  2 root root 4.0K  4月 24  2023 workspace
-rw-------.  1 root root 1.3K  1月  7  2023 anaconda-ks.cfg
-rw-r--r--   1 root root  911  4月 29 18:29 memory_usage_check.log
drwxr-xr-x.  2 root root   75 12月  4 19:32 blog_test
drwxr-xr-x.  3 root root   48  4月 13  2023 bash-completion
-rw-r--r--   1 root root   42  4月 25 23:01 file1.txt
-rw-r--r--   1 root root   29  5月  8 18:24 symbolic-link-file1
-rw-r--r--   1 root root   29  5月  8 18:33 symbolic-link-file2
lrwxrwxrwx   1 root root   25  5月  8 21:08 symbolic-link-file1.ln -> /root/symbolic-link-file1
drwxr-xr-x   2 root root   19  5月  8 18:42 symbolic-link
drwxr-xr-x.  2 root root    6  4月 25  2023 backup
drwxr-xr-x   2 root root    6  5月  8 19:48 symbolic-link-dir
drwxr-xr-t   2 root root    6 12月 21 22:58 thinclient_drives
-rw-r--r--.  1 root root    1 11月 18 23:24 enforce~
-rw-r--r--.  1 root root    1 11月 19 00:43 enforcx~
-rw-r--r--.  1 root root    1 11月 19 00:43 enforcy~
-rw-r--r--.  1 root root    1 11月 19 00:42 enforcz~
-rw-r--r--   1 root root    0  5月  6 23:22 link.ln
-rw-r--r--   1 root root    0  5月  4 17:27 startup.log

ファイルサイズ順に並べています。大きい方は自動でキロバイトで表示されました。ファイルサイズが見にくい場合に使用します。

i-node番号を表示

lsコマンドのiオプションで、i-node番号を表示する事が可能です。

[root@localhost ~]# ls -il
合計 80
 8409154 -rw-------.  1 root root  1257  1月  7  2023 anaconda-ks.cfg
10839619 drwxr-xr-x.  2 root root     6  4月 25  2023 backup
10839616 drwxr-xr-x.  3 root root    48  4月 13  2023 bash-completion
10839593 drwxr-xr-x.  2 root root    75 12月  4 19:32 blog_test
10841135 -rw-r--r--.  1 root root     1 11月 18 23:24 enforce~
10841138 -rw-r--r--.  1 root root     1 11月 19 00:43 enforcx~
10841137 -rw-r--r--.  1 root root     1 11月 19 00:43 enforcy~
10841136 -rw-r--r--.  1 root root     1 11月 19 00:42 enforcz~
 8903766 -rw-r--r--   1 root root    42  4月 25 23:01 file1.txt
10766005 -rw-r--r--   1 root root     0  5月  6 23:22 link.ln
 8903768 -rw-r--r--   1 root root   911  4月 29 18:29 memory_usage_check.log
 1994778 drwxr-xr-x. 12 root root  4096  4月 27  2023 sh_test
10766006 -rw-r--r--   1 root root     0  5月  4 17:27 startup.log
41946946 drwxr-xr-x   2 root root    19  5月  8 18:42 symbolic-link
41946947 drwxr-xr-x   2 root root     6  5月  8 19:48 symbolic-link-dir
10797424 -rw-r--r--   1 root root    29  5月  8 18:24 symbolic-link-file1
10797421 lrwxrwxrwx   1 root root    25  5月  8 21:08 symbolic-link-file1.ln -> /root/symbolic-link-file1
10797425 -rw-r--r--   1 root root    29  5月  8 18:33 symbolic-link-file2
10864482 drwxr-xr-t   2 root root     6 12月 21 22:58 thinclient_drives
 8903769 -rw-r--r--   1 root root 28327  4月 29 19:21 vmstat.log
10839594 drwxr-xr-x.  2 root root  4096  4月 24  2023 workspace

始めの列にi-node番号が表示されました。

i-node番号とはパーティションでファイルやディレクトリを識別する番号です。シンボリックリンクやハードリンクなどで出てきます。

ファイルの種類を表示

lsコマンドのFオプションで、ファイルの種類を表示する事が可能です。

[root@localhost ~]# ls -F
anaconda-ks.cfg   blog_test/  enforcy~   link.ln*                startup.log         symbolic-link-file1      thinclient_drives/
backup/           enforce~    enforcz~   memory_usage_check.log  symbolic-link/      symbolic-link-file1.ln@  vmstat.log
bash-completion/  enforcx~    file1.txt  sh_test/                symbolic-link-dir/  symbolic-link-file2      workspace/

ファイルやディレクトリ名の後に文字がついているものがあります。ファイルの種類を表しています。

ls -Fコマンドのファイルの種類について
  • 「/」が付いているもの・・・ディレクトリ
  • 「@」が付いているもの・・・シンボリックリンク
  • 「*」が付いているもの・・・実行可能なファイル

まとめ:Linuxサーバーでlsコマンドの使い方

Linuxサーバーでディレクトリやファイルを表示するコマンドはlsコマンドです。

lsコマンドのオプションについてまとめます。

lsコマンドのオプション効果
-lディレクトリやファイルの詳細を表示
-1ディレクトリやファイルを一列に表示
-a全てのディレクトリやファイルを表示。隠しファイルなど
-Rディレクトリ配下も表示
-r順序を逆に表示。デフォルトは名前の順
-t更新日時が新しい順で表示
–full-time更新日時を詳細に表示
-Sファイルサイズ順に表示
-hファイルサイズを丁度良い単位で表示
-ii-node番号を表示
-Fファイルの種類を表示
Linuxでlsコマンドのオプション一覧
モバイルバージョンを終了