ls -lSはファイルサイズの降順ソート

  • Linux
  • Shell

この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。

何を確認したか

ls -lS はファイルサイズの大きい順(降順)に並べるオプション。手元の出力で確認した内容もこの通りだった。

$ ls -lS
合計 220M
-rw-r--r-- 1 apache apache 30M 6月 24 14:07 example-file-a.dat
-rw-r--r-- 1 apache apache 30M 6月 25 10:10 example-file-b.dat
-rw-r--r-- 1 apache apache 30M 6月 24 15:35 example-file-c.dat
-rw-r--r-- 1 apache apache 11M 6月 29 17:24 example-file-d.log

30M → 30M → 30M → 11M で、サイズの大きい順に並んでいる。-r を付ければ逆順(昇順)にもできる。

注意点

  • 同サイズファイルの並び順は保証されない。-S が保証するのはサイズの大小関係までで、同サイズ同士の順序(この例だとタイムスタンプ順でもファイル名順でもなかった)は規定されていない。実装依存でディレクトリエントリの内部順に引っ張られることが多いらしい。
  • -h 併用時の表示は概算値。30M のような human-readable 表示は丸められているので、見た目が同じでも実バイト数は異なる場合がある。厳密に比較したいときは -h を外してバイト単位で見るか du を使う。

結論

ls -lS はサイズの大きい順に並べるオプションで、動作自体はシンプル。ただし同サイズの順序や -h の丸めは別問題として意識しておく必要がある。