気持ちが良いIT技術を学ぶ

ファイル検索するコマンド 「find」

2023年07月20日に更新, By 管理者

- ファイル検索するコマンド

find [オプション] [検索文字列]

例)「bak」の文字列が含まれたファイル検索

% find -name "*bak"

- 現在から3日前まで(現在時間〜72時間前)
「-mtime 日数」 : 指定した日数より前に更新されたファイル

$ find ./ -mtime -1

- Tempフォルダで30日前の古いファイル削除

[root@mail ]# cd /tmp
[root@mail tmp]# find ./ -mtime +30  | xargs rm -f


- ファイルのみ検索
 「-type f」 : ファイルのみを対象とし検索する
 拡張子が「.bak」になったファイル検索する

% find ./ -type f -name "*.bak"

- ファイル検索後削除

% find ./ -type f -name "*.bak" | xargs rm

-「/tmp/」の古いファイルの削除処理 (パッチ処理)

[root@mail yum.repos.d]# cat /usr/local/bin/old_tmp_remove.bash
#!/bin/bash

MTIME=100
REGEX="/tmp/\.?(X11-unix|XIM-unix|font-unix|ICE-unix|Test-unix|hsperfdata_).*"

# /etc/cron.daily/tmpwatch で除外しているディレクトリを find コマンドで再現しつつ、削除。
find /tmp/ -type f -mtime +$MTIME -regextype posix-extended ! -regex $REGEX -ls -delete

# 何もないフォルダも削除。
find /tmp/ -type d -empty -mtime +$MTIME -regextype posix-extended ! -regex $REGEX -ls -delete