Find (UNIX)

ここでは主にUnix系プラットフォームで利用できるディレクトリ検索プログラムであるcodice_1（ファインド）について記述する。ファイルシステムの1つ以上のディレクトリツリー上で検索を行い、ユーザーの指定した基準にマッチするファイルを探す。既定の動作としては現在のワーキングディレクトリ配下にある全ファイルをリストアップする。さらに codice_1 はマッチした各ファイルに対して何らかのアクションを実行するよう指定できるため、大量のファイルを操作することができる非常に強力なプログラムであるといえる。正規表現によるマッチングもサポートしている。
find における正規表現文法について.
find は評価式「codice_3」や「codice_4」などを用いることで正規表現によるパス名のマッチングを行うことが可能であるが、GNUプロジェクト版のfindは複数の正規表現文法に対応している。そこで、GNU findは、既定では正規表現をGNU Emacsの正規表現として解釈し、他の異なる文法についてはコマンドラインオプション「codice_5」の引数によって解釈を切り替えて対応している。
例.
 find . -name 'my*'
 find . -name my\* -type f
 find . -type f -name 'my*' -ls
 find / -type f -iname myfile -print
 find /home/brian -type f -name myfile -print
 find local /tmp -type d -name mydir -print
 find / -type f -name myfile -print 2> /dev/null
 find . -type f \( -name '*jsp' -or -name \*java \) -ls
 find /var/ftp/mp3 -type f -iname '*.mp3' -exec chmod 744 {} \;
 find /var/ftp/mp3 -type f -iname '*.mp3' -print | xargs chmod 744
 find /tmp -exec grep "search string" '{}' /dev/null \; -print
 find /tmp -exec grep -H "search string" '{}' \; -print
 grep -R /tmp "search string"
 find ~jsmith -exec grep "LOG" '{}' /dev/null \; -print
 /home/jsmith/scripts/errpt.sh:cp $LOG $FIXEDLOGNAME
 /home/jsmith/scripts/errpt.sh:cat $LOG
 /home/jsmith/scripts/title:USER=$LOGNAME
 find . -type f -iname '*.xml' -exec grep "ERROR" '{}' \; -print
 find . -user <userid>
Windows/MS-DOSコマンドとしてのfind.
Windowsコマンド（MS-DOSコマンド）としてのfindは、ちょうどUnixコマンドでいうところのfgrepのような文字列検索を行う。実行すると検索文字列が含まれる行が標準出力に出力される。ちなみにgrepに相当するコマンドはfindstrである。