【linux】更新日が最近のファイルを見つける(findコマンド)
問題
サーバー内の、最近いじられたファイルを探したいんですけど!
どうしたらいいですか?
答え
ガンブラー攻撃でファイルが更新されていないか気になるときにも使えます。
findコマンドはファイル名(正規表現可)、更新日、所有者、グループ、サイズなどで、ファイル、ディレクトリを検索ができる。
更新日が最近の10日以内のファイルを見つける。場所はカレントディレクトリ「.」以下から。詳細に(-ls)
find . -mtime -10 -ls
更新日が最近の10日以上前のファイルを見つける(こう書くと古い方を見てしまう)
find . -mtime +10
更新日がちょうど○日のファイルを見つける
find . -mtime 10
更新日など詳細が見えなくてよいときは -print を指定するか、省略する。
おまけ1
ちなみに正規表現で検索はこう。パス全体がマッチするかどうかを見る。
パス全体が、正規表現”.*ww/test\.h.*” にマッチすると検索結果に表示される(例えば /home/apache/www/test.html など)
find /home -regex ".*ww/test\.h.*"
おまけ2
更新日時を、ざっと眺めたいときには、lsコマンドもよい。
ls -laRt /home/apache
l … 詳細に、a … 隠しファイルを含めて、R…サブディレクトリも含めて、t…更新日順に
日単位ではなく時間単位はないの?
timeなのに日単位で、分単位はminとなっている。
find . -mmin -3
参考
http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html
コメント