SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【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

関連するメモ

コメント