Linux Tips

変更後一定期間が経過したファイルを探すには

北浦訓行
2003/1/23

 変更してから一定期間が経過したファイルを検索するには、-ctimeオプションを付けてfindコマンドを実行する。例えば、1週間以上修正していないファイルを/home/project以下から検索して表示するには、以下のように行う。

$ find /home/project/ -ctime +7 -print

 ファイルを指定して検索する場合は、-nameオプションを追加する。また、カレントディレクトリを検索する場合は、「/home/project」の代わりに「.」を指定すればいい(検索の対象は、カレントディレクトリ以下になる)。以下の例では、拡張子が「.txt」のファイルを検索する。

$ cd /home/project ←ディレクトリを/home/projectに変更
$ find -name '*.txt' -ctime -7 -print
./test.txt

 ここで-ctimeオプションに「-7」を指定しているが、これは「7日以下」を意味する。逆に「+7」を指定すると「7日以上」になる。「+」や「-」を付けないで「7」とすると「7日間」の意味になる。

 -printの代わりに-execとすると、それに続くコマンドを実行できる。「;」はコマンドの終わりを意味し、「{}」は該当するファイル名に置き換えられる。また、シェルによってこれらの文字が展開されないように、「'」で囲む必要がある。以下の例では、7日以内に修正された拡張子が「.txt」のファイルの内容を表示する。

$ find . -name '*.txt' -ctime -7 -exec cat '{}' ';'

テスト用のテキストです ←該当するファイルの内容が表示される

 以下のコマンドを実行すると、カレントディレクトリで作成後7日以上経過した拡張子が「.bak」というファイルがすべて削除される。

$ find . -name '*.bak' -ctime +7 -exec rm '{}' ';'
$ find . -name '*.bak' -ctime +7 -print ←確認のため表示してみる
$  ←ファイルが削除されたので何も表示されない

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間