lsコマンドの並び替え(ソート)方法|時間順・サイズ順など現場の必須オプション

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips > lsコマンドの並び替え(ソート)方法|時間順・サイズ順など現場の必須オプション
「ログファイルが多すぎて、今日更新されたファイルがどれか分からない」
「ディスク容量を圧迫している巨大なファイルを探し出したい」
Linuxサーバーの運用保守で、毎日必ずと言っていいほど直面するシチュエーションです。

この記事では、ls コマンドを使ってファイルやディレクトリの一覧を並び替える(ソートする)方法を解説します。
単なるアルファベット順ではなく、現場のエンジニアが息をするように使っている「時間順」や「サイズ順」など、実務直結のオプションをまとめました。

【この記事でわかること】

・ls -lt で最終更新時刻の新しい順にファイルを並べ替えられる
・ls -lS でファイルサイズの大きい順に並べ替えられる
・ls -lr で逆順(古い順・小さい順)に並べ替えられる
・ls -ltu でアクセス時刻順、ls -ltc でステータス変更時刻順に並べ替えられる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

1. 更新日時の「時間順」にソートする(-t / -rt)

障害調査などで最新のエラーログを確認する際、最もよく使われるのが時間順のソートです。

新しい順(降順)に並べる: -t

-t(time)オプションを付けると、タイムスタンプ(更新日時)が新しいファイルが上に、古いファイルが下に並びます。通常は詳細表示の -l と組み合わせて -lt として使います。

# ls -lt -rw-r--r-- 1 root root 1024 2月 24 10:00 access.log ←一番新しい -rw-r--r-- 1 root root 2048 2月 23 15:30 error.log -rw-r--r-- 1 root root 4096 2月 22 09:15 system.log ←一番古い

【現場の鉄則】古い順に並べて最新を一番下に出す: -rt

-t オプションには弱点があります。ファイルが数百個ある場合、一番新しいファイルが画面の上に流れていってしまい、いちいちスクロールして戻らなければなりません。

そこで、逆順にする -r(reverse) オプションを組み合わせます。

# ls -lrt -rw-r--r-- 1 root root 4096 2月 22 09:15 system.log ←一番古い -rw-r--r-- 1 root root 2048 2月 23 15:30 error.log -rw-r--r-- 1 root root 1024 2月 24 10:00 access.log ←一番新しい(画面の一番下)

ls -lrt と打つことで、プロンプトのすぐ上に最新ファイルが表示されるため、現場ではこちらを使うのが圧倒的な定番です。

隠しファイル(ドットファイル)も含めてソートする: -a との組み合わせ

.bashrc.ssh などの隠しファイル(ドットファイル)も対象に含めたい場合は、-a(all)を追加します。
隠しファイルも含めて更新日時の古い順に並べる場合は下記の通り実行します。

# ls -lrta

2. ファイルの「サイズ順」にソートする(-S)

「ディスク容量が100%になってしまったので、巨大なファイルを特定したい」という時に活躍するのが -S(大文字のエス)オプションです。

大きい順(降順)に並べる: -S

サイズ順に並べる場合も、人が見て分かりやすいように -h(human-readable:KやMなどの単位をつける)オプションと組み合わせるのが実務の基本です。

# ls -lhS -rw-r--r-- 1 root root 1.5G 2月 24 10:00 database.dump ←一番大きい -rw-r--r-- 1 root root 500M 2月 23 15:30 backup.zip -rw-r--r-- 1 root root 12K 2月 22 09:15 config.txt ←一番小さい

※逆に、一番小さいものを一番上にしたい場合は ls -lhSr-r を追加します。

3. 拡張子ごとにソートする(-X)

同じディレクトリに .html.php.jpg などが混在している場合、拡張子ごとにまとめて表示させるとスッキリします。この場合は -X(大文字のエックス)を使います。

# ls -lX -rw-r--r-- 1 root root 120 2月 24 10:00 index.html -rw-r--r-- 1 root root 1024 2月 24 10:00 data.txt -rw-r--r-- 1 root root 200 2月 24 10:00 login.php -rw-r--r-- 1 root root 300 2月 24 10:00 main.php

※小文字の -x は「行ごとに横に並べて表示する」という全く別のオプションなので注意してください。
-X および次の -v はLinux(GNU ls)固有のオプションです。macOSのターミナルなど、BSD系の環境では使用できませんのでご注意ください。

4. 数字(バージョン)順にソートする(-v)

通常のアルファベット順ソートでは、file1.txtfile10.txtfile2.txt のように、数字の「10」が「2」より先に来てしまい不自然になります。

これを人間が見て自然な数字順(バージョン順)に並び替えるのが -v オプションです。

# ls -lv -rw-r--r-- 1 root root 100 2月 24 10:00 file1.txt -rw-r--r-- 1 root root 200 2月 24 10:00 file2.txt -rw-r--r-- 1 root root 300 2月 24 10:00 file10.txt

本記事のまとめ(ソートオプション早見表)

やりたいこと コマンド例
更新日時が新しい順に並べる ls -lt
更新日時が古い順に並べる(最新が一番下) ls -lrt
隠しファイルも含めて時間順に並べる ls -lrta
ファイルサイズが大きい順に並べる ls -lhS
ファイルサイズが小さい順に並べる ls -lhSr
拡張子ごとにまとめて並べる(Linux専用) ls -lX
数字(バージョン)順に自然に並べる(Linux専用) ls -lv

あわせて読みたい関連記事

xargs・find・grepの組み合わせ — ファイル一覧から一括処理

lsコマンドのソートオプションを使いこなして、現場作業を効率化する

ファイルを時間順やサイズ順に素早く並べ替えられると、ログ調査やディスク管理の作業時間が大幅に短縮されます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。