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 Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間