使いみち
- サーバーの調査時に、ある期間内でもっともサイズの大きいファイルを見たい
- ex. 急にサーバー容量が増えたけど、どのファイルが原因なのかを調査する等
コマンド
find . -type f -newermt "2020-08-31 00:00:00" -a ! -newermt "2020-09-05 23:59:59" -printf "%p %s" | sort -k 2,2
解説
-
-newermt
- 指定した日付より新しいもの(>)。ここでは2020年8月31日の0時ジャストより先の日付になる
-
-a ! -newermt
- 上記の否定になる(<=)。ここでは、2020年9月5日の23時59分59秒以下の日付になる
- 2つを合わせると以下のように期間指定したことになる
2020年8月31日0時0分0秒 < ファイルの最終更新日付 <= 2020年9月5日23時59分59秒
-
-printf "%p %s"
- findで見つけたファイルの名前(フルパス)とファイルのサイズを出力する
-
sort -k 2,2
-
-k [開始位置],[終了位置]
でソートのキーを指定できる - ここでは2番目のサイズのみをキーとするよう指定している
- ※findの結果を「ファイル名 ファイルサイズ」のみにしていることに注意
-
参考
[Linux] findコマンドで指定した日付の範囲に更新されたファイルを検索する
逆引きUNIXコマンド/findに日時を指定し該当するファイルを検索する
findで具体的な日付、時間で検索するnewerXYオプション
sortコマンドについて詳しくまとめました 【Linuxコマンド集】
sortコマンド(テキストファイルをソートする)