先日、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
オプションを使えば良い。