先日、Webからファイルをアップロードするシステムの、アップロード先フォルダにFTPクライアントからアクセスすると、ファイル数が多すぎてファイルの一覧取得に長時間かかってしまい、まともに作業をおこなうことができなかった。

最後にアップロードしたファイルが正常に保存されているかを確認したかっただけなのだが、FTPクライアントからだと全てのファイルのリストを取得するところから始まるので無駄な待ち時間が発生してしまう。

今回は、このようなケースにおいて、Linuxのコマンドラインから指定した件数だけファイル情報を取得する方法を紹介する。

ファイルの一覧はlsコマンドで取得することができる。

# タイムスタンプの新しい順に5行分表示
ls -lt /var/www/html/uploads | head -5

合計 1771832 
-rw-rw-r-- 1 guest guest   162261 10月 13 02:33 2021-10-12_31654_1.pdf 
-rw-rw-r-- 1 guest guest    80912 10月 13 01:31 2021-10-12_31650_1.pdf 
-rw-rw-r-- 1 guest guest    54937 10月 12 02:59 2021-10-11_31643_1.pdf 
-rw-rw-r-- 1 guest guest   167397 10月 11 20:31 2021-10-11_31642_1.pdf

件数の指定はlsコマンドの後にパイプ(|)で区切ってhead -nでおこなう。

また、タイムスタンプ順にソートした結果を表示させたい場合は、lsオプションの-tオプションを使えば良い。