Unix全般 -> シェル -> Bash

find 使用例

基本的な使用方法


ファイル名の一部(拡張子)でファイルを検索する
$ find /var -name \*.log
/var/sadm/system/logs/sysidtool.log
/var/sadm/system/logs/begin.log

複数の条件を指定する場合
find /opt/SUNWdsee \( -name \*.conf -o -name \*.sh \)
/opt/SUNWdsee/dsins1/alias/certmap.conf
/opt/SUNWdsee/dsins2/alias/certmap.conf
/opt/SUNWdsee/tool/ldap.sh
/opt/SUNWdsee/tool/list.sh
/opt/SUNWdsee/tool/mod.sh

ファイルの更新時間で検索する
  24時間以内に更新されたファイル
  $ find /var -type f -mtime 0

  120日(120x24h)以前に変更されたファイル
  $ find /var -type f -mtime +120

  7日(7x24h)前以降に変更されたファイル
  $ find /var -type f -mtime -7

-execオプションの使い方


-exec コマンドは find で検索したファイルの後続処理を指定する。
find でファイルが 5個見つかった後そのファイルを削除した場合 -exec rm のようにコマンドを記述する。
ただし 同じコマンドを見つかった数だけ処理するのでファイルが100個見つかった場合は同じく処理を
100回繰り返し実行するので処理に時間がかかる欠点がある。
同じ処理を | xargs でも出来るのでそちらを使用したほうが高速に処理ができる。


詳細リストを表示させる場合
$ find /var/ -name \*.log -exec ls -l {} \;
-rw-r--r--   1 root  root    35005 11月 14日  12:22 /var/sadm/system/logs/sysidtool.log
-rw-r--r--   1 root  root       20  8月 27日  19:56 /var/sadm/system/logs/begin.log

  xargsを使用した例
  find /var/ -name \*.log | xargs ls -l
  xargsを使用した例
  ls -l `find /var/ -name \*.log`

/var/svc/log 配下の *.log ファイルを /tmp/log へコピーする。
$ find /var/svc/log -name \*.log -exec cp -p {} /tmp/log \;

  xargs を使用した例
  find /var/svc/log -name \*.log | xargs -i cp -p {} /tmp/log

/tmp/log 配下の *.log ファイルを削除する。
$ find /tmp/log -name \*.log -exec rm {} \; 
  xargsを使用した場合
  find /tmp/log -name \*.log | xargs rm


    

      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google