トップページ > サーバ構築 > ls コマンドで並び替えや表示する数を指定する方法

ls コマンドで並び替えや表示する数を指定する方法

RedHat や CentOS など Linux 系のサーバでファイルやディレクトリの一覧を表示する ls コマンドの使い方と同時に付与するオプションにより並び替えや表示する数を指定して便利に活用する方法を紹介する。

ls コマンドで並び替えや表示する数を指定する方法

1. ls コマンドとは

ls コマンドとは Linux 系のサーバに用意されているファイルやディレクトリの一覧を表示する機能で list segments の略である。
ls の後ろにオプション値を付けることで表示形式や表示させたい対象を指定することができる。
また、ls コマンドの後ろに一覧を表示させたいファイルやディレクトリを指定することでディレクトリを移動することなく一覧表示させることが可能である。

2. ファイル名だけ表示する

ファイル名だけを表示する場合は、対象のディレクトリに移動した後に下記のように ls コマンドでファイル等の一覧が表示される。
属性などが無いファイル名だけが表示されるとともに、.(ピリオド)で始まる特殊ファイルは表示されない。

# ls
COPYING     app  composer.json  dockerbuild  html       maintenance.php    package.json  src           var     web.config
Dockerfile  bin  composer.lock  gulpfile.js  index.php  package-lock.json  robots.txt    symfony.lock  vendor

3. 全ファイルを表示する(-a オプション)

.(ピリオド)で始まる特殊ファイルを含む全てのファイル名を表示する場合は、ls コマンドの後ろにオプション -a を付与する。
オプションが -a だけの場合は属性等は表示されない。

# ls -a
.              .env          .htaccess   app            composer.lock  html             package-lock.json  src           vendor
..             .env.dist     COPYING     bin            dockerbuild    index.php        package.json       symfony.lock  web.config
.dockerignore  .env.install  Dockerfile  composer.json  gulpfile.js    maintenance.php  robots.txt         var

4. ファイルの属性を表示する(-l オプション)

ファイルのパーミッションや所有者、ファイルサイズ、更新日付といった属性を一緒にファイル名を表示する場合は、ls コマンドの後ろにオプション -l を付与する。
表示される一覧はファイルとディレクトリが入り混じった状態で、アルファベットの五十音順で表示される。

# ls -l
合計 652
-rw-r--r--  1 apache apache  17987  9月  5  2019 COPYING
-rw-r--r--  1 apache apache   2682  9月  5  2019 Dockerfile
drwxr-xrwx  9 apache apache    141  5月  4  2020 app
drwxr-xrwx  2 apache apache     76  5月  4  2020 bin
-rw-r--rw-  1 apache apache   6672  9月  5  2019 composer.json
-rw-r--rw-  1 apache apache 355704  9月  5  2019 composer.lock
 ・
 ・
 ・

5. ファイルサイズの大きい順で並び替えする(-S オプション)

ファイルの一覧を表示する際にファイルサイズの大きい順に並び替えをする場合は、ls コマンドの後ろにオプション -S を付与する。
下記の例では分かりやすいようにファイルの属性も表示するオプション -l も一緒に付与している。

# ls -lS
合計 652
-rw-r--rw-  1 apache apache 355704  9月  5  2019 composer.lock
-rw-r--r--  1 apache apache 226935  9月  5  2019 package-lock.json
-rw-r--r--  1 apache apache  17987  9月  5  2019 COPYING
-rw-r--r--  1 apache apache  15644  9月  5  2019 symfony.lock
-rw-r--rw-  1 apache apache   6672  9月  5  2019 composer.json
-rw-r--r--  1 apache apache   4240  9月  5  2019 web.config
drwxr-xrwx 33 apache apache   4096  5月  4  2020 vendor
-rw-r--r--  1 apache apache   2736  9月  5  2019 index.php
 ・
 ・
 ・

6. 拡張子ごとにまとめて表示する(-X オプション

ファイルの一覧を表示する際に拡張子ごとにまとめて表示する場合は、ls コマンドの後ろにオプション -X を付与する。
下記の例では分かりやすいようにファイルの属性も表示するオプション -l も一緒に付与している。
拡張子ごとにまとめられる際は拡張子のアルファベットの五十音順に並ぶ。

# ls -lX
合計 652
-rw-r--r--  1 apache apache  17987  9月  5  2019 COPYING
-rw-r--r--  1 apache apache   2682  9月  5  2019 Dockerfile
drwxr-xrwx  9 apache apache    141  5月  4  2020 app
drwxr-xrwx  2 apache apache     76  5月  4  2020 bin
drwxr-xrwx  2 apache apache     38  5月  4  2020 dockerbuild
drwxr-xrwx  6 apache apache     67  5月  4  2020 html
drwxr-xrwx  3 apache apache     37  5月  4  2020 src
drwxr-xrwx  5 apache apache     62  5月  4  2020 var
drwxr-xrwx 33 apache apache   4096  5月  4  2020 vendor
-rw-r--r--  1 apache apache   4240  9月  5  2019 web.config
-rw-r--r--  1 apache apache   1814  9月  5  2019 gulpfile.js
-rw-r--rw-  1 apache apache   6672  9月  5  2019 composer.json
-rw-r--r--  1 apache apache 226935  9月  5  2019 package-lock.json
-rw-r--r--  1 apache apache   1379  9月  5  2019 package.json
-rw-r--rw-  1 apache apache 355704  9月  5  2019 composer.lock
-rw-r--r--  1 apache apache  15644  9月  5  2019 symfony.lock
-rw-r--r--  1 apache apache   2736  9月  5  2019 index.php
-rw-r--r--  1 apache apache   1548  9月  5  2019 maintenance.php
-rw-r--r--  1 apache apache     18  9月  5  2019 robots.txt

7. ファイルサイズの表示を変える(-h オプション)

ファイルの一覧を表示する際にファイルサイズの単位を変えて表示する場合は、ls コマンドの後ろにオプション -h を付与する。
下記の例では分かりやすいようにファイルの属性も表示するオプション -l も一緒に付与している。
オプション -h はファイルサイズの桁数に応じて動的に変わり、例えば 1,000 バイト以上では K の単位が付き、1,000 バイト未満の場合は単位を示すアルファベットは付かないようになっている。

# ls -lh
合計 652K
-rw-r--r--  1 apache apache  18K  9月  5  2019 COPYING
-rw-r--r--  1 apache apache 2.7K  9月  5  2019 Dockerfile
drwxr-xrwx  9 apache apache  141  5月  4  2020 app
drwxr-xrwx  2 apache apache   76  5月  4  2020 bin
-rw-r--rw-  1 apache apache 6.6K  9月  5  2019 composer.json
-rw-r--rw-  1 apache apache 348K  9月  5  2019 composer.lock
drwxr-xrwx  2 apache apache   38  5月  4  2020 dockerbuild
-rw-r--r--  1 apache apache 1.8K  9月  5  2019 gulpfile.js
drwxr-xrwx  6 apache apache   67  5月  4  2020 html
-rw-r--r--  1 apache apache 2.7K  9月  5  2019 index.php
-rw-r--r--  1 apache apache 1.6K  9月  5  2019 maintenance.php
 ・
 ・
 ・

8. 最終更新日時を表示する(--time-style オプション)

ファイルの一覧を表示する際にファイルの更新日時の内、秒まで表示する場合は、ls コマンドの後ろにオプション --time-style を付与する。
下記の例では分かりやすいようにファイルの属性も表示するオプション -l も一緒に付与している。
オプション --time-style は = の後ろにさらに値を入れる利用方法となり、秒まで表示するには full-iso を指定する。

# ls -l --time-style=full-iso
合計 652
-rw-r--r--  1 apache apache  17987 2019-09-05 15:42:44.000000000 +0900 COPYING
-rw-r--r--  1 apache apache   2682 2019-09-05 15:42:44.000000000 +0900 Dockerfile
drwxr-xrwx  9 apache apache    141 2020-05-04 11:23:24.499331520 +0900 app
drwxr-xrwx  2 apache apache     76 2020-05-04 11:23:25.171340846 +0900 bin
-rw-r--rw-  1 apache apache   6672 2019-09-05 15:42:44.000000000 +0900 composer.json
-rw-r--rw-  1 apache apache 355704 2019-09-05 15:42:44.000000000 +0900 composer.lock
drwxr-xrwx  2 apache apache     38 2020-05-04 11:23:25.620347077 +0900 dockerbuild
-rw-r--r--  1 apache apache   1814 2019-09-05 15:42:44.000000000 +0900 gulpfile.js
drwxr-xrwx  6 apache apache     67 2020-05-04 11:23:45.532623405 +0900 html
-rw-r--r--  1 apache apache   2736 2019-09-05 15:42:44.000000000 +0900 index.php
-rw-r--r--  1 apache apache   1548 2019-09-05 15:42:44.000000000 +0900 maintenance.php
 ・
 ・
 ・

また、--time-style で long-iso を指定することでファイルの更新日時の分まで一覧に表示される。

# ls -l --time-style=long-iso
合計 652
-rw-r--r--  1 apache apache  17987 2019-09-05 15:42 COPYING
-rw-r--r--  1 apache apache   2682 2019-09-05 15:42 Dockerfile
drwxr-xrwx  9 apache apache    141 2020-05-04 11:23 app
drwxr-xrwx  2 apache apache     76 2020-05-04 11:23 bin
-rw-r--rw-  1 apache apache   6672 2019-09-05 15:42 composer.json
-rw-r--rw-  1 apache apache 355704 2019-09-05 15:42 composer.lock
drwxr-xrwx  2 apache apache     38 2020-05-04 11:23 dockerbuild
-rw-r--r--  1 apache apache   1814 2019-09-05 15:42 gulpfile.js
drwxr-xrwx  6 apache apache     67 2020-05-04 11:23 html
-rw-r--r--  1 apache apache   2736 2019-09-05 15:42 index.php
-rw-r--r--  1 apache apache   1548 2019-09-05 15:42 maintenance.php
 ・
 ・
 ・

9. 最新更新時間順に表示する(-t オプション)

ファイルの一覧を表示する際にファイルの更新日時の新しい順(降順)で表示する場合は、ls コマンドの後ろにオプション -t を付与する。
下記の例では分かりやすいようにファイルの属性も表示するオプション -l も一緒に付与している。

# ls -lt
合計 652
drwxr-xrwx  5 apache apache     62  5月  4  2020 var
drwxr-xrwx 33 apache apache   4096  5月  4  2020 vendor
drwxr-xrwx  3 apache apache     37  5月  4  2020 src
drwxr-xrwx  6 apache apache     67  5月  4  2020 html
drwxr-xrwx  2 apache apache     38  5月  4  2020 dockerbuild
drwxr-xrwx  2 apache apache     76  5月  4  2020 bin
drwxr-xrwx  9 apache apache    141  5月  4  2020 app
-rw-r--r--  1 apache apache  17987  9月  5  2019 COPYING
-rw-r--r--  1 apache apache   2682  9月  5  2019 Dockerfile
-rw-r--rw-  1 apache apache   6672  9月  5  2019 composer.json
-rw-r--rw-  1 apache apache 355704  9月  5  2019 composer.lock
-rw-r--r--  1 apache apache   1814  9月  5  2019 gulpfile.js
-rw-r--r--  1 apache apache   2736  9月  5  2019 index.php
-rw-r--r--  1 apache apache   1548  9月  5  2019 maintenance.php
 ・
 ・
 ・

10. 表示する数を指定する

ファイルの一覧を表示する際に、表示する数を指定する場合は、ls コマンドの後ろにパイプと数量を付与する。
下記の例では分かりやすいようにファイルの属性も表示するオプション -l も一緒に付与している。

# ls -l | head -5
合計 652
-rw-r--r--  1 apache apache  17987  9月  5  2019 COPYING
-rw-r--r--  1 apache apache   2682  9月  5  2019 Dockerfile
drwxr-xrwx  9 apache apache    141  5月  4  2020 app
drwxr-xrwx  2 apache apache     76  5月  4  2020 bin

11. よく使う ls コマンドの例

ファイルを一覧表示する際によく利用する ls コマンドの例は「ls -la」である。
オプション -l でファイルサイズや更新日時を表示させつつ、-a で.(ピリオド)から始まる特殊ファイルも全て表示され、対象ディレクトリの状態が一目瞭然となるためよく利用されるコマンドである。

# ls -la
合計 676
drwxr-xrwx  9 apache apache   4096  5月  4  2020 .
drwxr-xr-x  6 root   root      116 11月 23  2020 ..
-rw-r--r--  1 apache apache     15  9月  5  2019 .dockerignore
-rw-rw-rw-  1 apache apache   2067  2月  9  2021 .env
-rw-r--r--  1 apache apache   1846  9月  5  2019 .env.dist
-rw-r--r--  1 apache apache     96  9月  5  2019 .env.install
-rw-r--r--  1 apache apache   2365  9月  5  2019 .htaccess
-rw-r--r--  1 apache apache  17987  9月  5  2019 COPYING
-rw-r--r--  1 apache apache   2682  9月  5  2019 Dockerfile
drwxr-xrwx  9 apache apache    141  5月  4  2020 app
drwxr-xrwx  2 apache apache     76  5月  4  2020 bin
-rw-r--rw-  1 apache apache   6672  9月  5  2019 composer.json
-rw-r--rw-  1 apache apache 355704  9月  5  2019 composer.lock
drwxr-xrwx  2 apache apache     38  5月  4  2020 dockerbuild
-rw-r--r--  1 apache apache   1814  9月  5  2019 gulpfile.js
 ・
 ・
 ・

12. ls コマンドの応用例

ls コマンドには上記以外にも多くのオプションが用意されており、組み合わすことでサーバ操作が非常に楽になる。
例えば下記の例はファイルの全属性を表示しつつ、更新日時の新しい順に 10 件表示させる場合は下記のように行う。

# ls -lat | head -10
合計 676
-rw-rw-rw-  1 apache apache   2067  2月  9  2021 .env
drwxr-xr-x  6 root   root      116 11月 23  2020 ..
drwxr-xrwx  9 apache apache   4096  5月  4  2020 .
drwxr-xrwx  5 apache apache     62  5月  4  2020 var
drwxr-xrwx 33 apache apache   4096  5月  4  2020 vendor
drwxr-xrwx  3 apache apache     37  5月  4  2020 src
drwxr-xrwx  6 apache apache     67  5月  4  2020 html
drwxr-xrwx  2 apache apache     38  5月  4  2020 dockerbuild
drwxr-xrwx  2 apache apache     76  5月  4  2020 bin

関連記事

@webolve をフォローしてください