ここでは、Unix でファイルを検索するコマンド find コマンドの簡単な使い方を掲載しています。Linux などの他の Unix 系 OS でも使い方は同じです。ただ、未検証ですので完全に同じ使い方ができるかはわかりません。
スポンサーリンク
ファイル名で検索する(完全一致)
serach.txt というファイル名のファイルをカレントディレクトリ (サブディレクトリを含む) 配下から検索し、結果を標準出力に出力しています。
find . -name serach.txt -print # /usr ディレクトリ配下で探す場合は以下の通り find /usr -name serach.txt -print
ファイル名で検索する(曖昧検索)
曖昧検索を行う場合は ” *.log ” のように指定します。拡張子が .log の ファイルを /usr ディレクトリ配下から検索しています。
find /usr -name "*.log" -print
OR 検索
検索条件を複数指定して、OR 条件でファイルを検索できます。test.txt または ” *.log ” というファイルを検索しています。カッコはエスケープする必要があります。
find . \( -name test.txt -o -name '*.log' \)
ファイルの更新日時をファイルを検索する
ファイルの更新日時を検索条件にするには -mtime をオプションで指定します。前述の OR 検索結果からさらに 12日間更新されていないファイルを検索しているサンプルになります。また、n 日以内に修正されたファイルや、ピンポイントで n 日前に修正されたファイルの検索などができます。
# 12日間更新されていないファイルを検索する find . \( -name test.txt -o -name '*.log' \) -mtime +12 # 12日以内に更新されたファイルを検索する find . \( -name test.txt -o -name '*.log' \) -mtime -12 # 12日前にピンポイントで更新されたファイルを検索する find . \( -name test.txt -o -name '*.log' \) -mtime 12
ファイルサイズを検索条件にする
ファイルサイズが Nバイトや、Nバイトより大きい、または Nバイトより小さいなどのようにファイルサイズを検索条件にできます。大きなサイズのファイルを検索するためによく使用されます。c ( バイト ) 、k ( キロバイト ) 、M ( メガバイト ) のようにサイズ指定できます。
# 800バイトより大きいファイルを検索する find . -name '*' -size +800c # 800バイトのファイルを検索する find . -name '*' -size 800c # 800バイトより小さいファイルを検索する find . -name '*' -size -800c
検索結果のファイルに対してコマンドを発行する
検索結果で取得したファイルに対してコマンドを発行するには -exec オプションを指定します。次の例では、10日間更新されていないファイルに対して rm コマンドを発行し、削除しています。
find . -name "*.log" -mtime +10 -exec rm {} \;
find コマンドは開発時も運用時もよく使用される便利なコマンドです