TOP(サイトマップ) | Solaris man マニュアル | |
(はじめに) はじめに Solarisって・・・ SunのセミナーとSDC Solaris 10概要 資格(SCSA,SCNA) Solarisフォーラム 管理人に連絡 (Solaris基本) Solarisのインストール システムの起動と停止 ファイルシステム オートマウントとマウント パッケージとパッチ ユーザの追加と削除 ファイル権限(セキュリティ) バックアップとリストア CDE環境 プロセス管理/監視 (ネットワーク管理) OSIを理解してみる TCP/IPの設定 (TCP/IP入門) DNSの設定 NISの設定 NFSの設定(WebNFS,CacheFS) (NIS、NIS+、DNS違い) DHCPの設定 1つのNICで複数IP設定 (IO関連) インタフェース概要 SAFの管理 プリンタ管理概要 プリンタコマンド SunSolve Online SCSI情報(KEY,ASC,ASCQ) (ソフトウェア関連) Bash Apache Solstice DiskSuite (SDS OSミラー回復) Veritas VxVM (OBPについて) PROM(OBP)の概要 OBPでのキーボード操作 一般的なOBPコマンド SolarisでOBPの設定 OBPに関するFAQ (トラブル時の対応) 基本情報 エラーメッセージ (主要メッセージ一覧) 性能関連コマンド トレースコマンド クラッシュダンプ SunSolve Online (その他) 小技集 UNIXコマンド (manマニュアル) システムチューニング ネットワークチューニング UltraSPARC T1について (FAQ) rootのPASSが不明 ハングアップかな? ハードトラブル OSが起動しない(b) swap領域の拡張方法 (リンク) Sun関連リンク その他リンク アバウトなJava入門 Perlメモ(逆引き用) |
ユーザーコマンド find(1) 【名前】 find - ファイルの検索 【形式】 /usr/bin/find path ... expression /usr/xpg4/bin/find path ... expression 【機能説明】 find ユーティリティは、path で指定した各パス名に含まれている ディレクトリ階層を再帰的に下降し、以下に示す一次子に書き込ま れたブール型の式 expression と一致するファイルを検索します。 find は、ファイル階層をどこまでも深く下降することが で き ま す。 path オ ペランドのアプリケーションによる指定値の長さが PATH_MAX を超えない限り、パスの長さが原因でエラーになるこ と はありません。 【オプション】 The following options are supported: -H コマンド行でシンボリックリンクに遭遇した場合、シ ン ボ リックリンク自身ではなく、シンボリックリンクが参 照するファイルのファイル情報とファイルタイプを評 価 し ま す。 参照先のファイルが存在しない場合、シンボ リックリンク自身のファイル情報およびファイルタイ プ を 評価します。コマンド行以外でシンボリックリンクに 遭遇した場合、シンボリックリンク自身のファイル情 報 およびファイルタイプを評価します。 -L シンボリックリンクに遭遇した場合、シンボリックリ ン ク 自身ではなく、シンボリックリンクが参照するファイ ルのファイル情報とファイルタイプを評価します。 -H と -L は相互排他的なオプションですが、これらを複数指定 し ても、エラーであるとは判断されません。最後に指定したオプショ ンが find ユーティリティの動作を決定します。 【オペランド】 以下のオペランドを指定できます。 path ディレクトリ階層構造における、下降を開始する 地点のパス名を指定します。 expression 第一引数は - で始まるか、あるいは引数自身 が ! または ( で、後続の引数は以下に説明する一 次子と演算子で構成される式として解釈さ れ ま す。以下の説明で、n が一次引数として使われて いる場合、n は 10 進整数とみなされます。この 整 数 に は、次に示すように先頭に正 (+) や負 (-) の符号を付加することも可能です。 +n n より大きい n n に等しい -n n より小さい [式] 有効な式は次のとおりです。 -acl ファイルに拡張 ACL が定義されている場合、 真 になります。 -atime n ファイルが n 日前にアクセスされている場 合、 真 になります。path に含まれているディレクト リのアクセス時間は、find 自体によって変更 さ れます。 -cpio device 常に真です。device 上に、現在のファ イ ル を cpio フォーマット (5120 バイトレコード) で書 き込みます。 -ctime n ファイルのステータスが n 日前に変更されて い る場合、真になります。 -depth 常に真です。ディレクトリ階層を下降して、ある ディ レ クトリにあるすべてのエントリを、その ディレクトリ自体よりも先に検査します。 こ れ は、find と cpio(1) を組み合わせて書き込み権 のないディレクトリ内のファイルを転送したい場 合に役立ちます。 -exec command 実行した command が終了ステータスとして 0 の 値を返す場合、真です。command の終わりには、 コマンドの終了を示すセミコロン (;) を付け る 必要があります。-exec の最後の引数が {} であ り、セミコロン (;) ではなくプラス (+) を指定 し た場合、コマンドが複数回呼び出され、{} が パス名のグループに置き換えられます。 -follow 常に真です。シンボリックリンクをたどり、アク セスしたディレクトリを記憶します。これは、無 限ループを検出するためです。無限ループは、シ ンボリックリンクが親ディレクトリを指している 場合などに発生します。この式を -type l 式 と 組み合わせて使用することはできません。 -fstype type ファイルが属するファイルシステム の 形 式 が type の場合、真です。 -group gname ファイルが gname というグループに属してい る 場 合、 真 で す。gname が数値で、/etc/group ファイルや NIS テーブル、NIS+ テーブルに存在 しない場合、この数値はグループ ID と見なされ ます。 -inum n ファイルが n という i ノード番号を持つ場合、 真です。 -links n ファイルにリンクが n 個ある場合、真です。 -local ファイルシステムが /etc/dfs/fstypes で定義さ れたリモートファイルシステムでない場合に、真 です。/etc/dfs/fstypes ファイルが存在しな い 場合、デフォルトのリモートファイルシステムと して nfs が使用されます。このオプション は、 ローカルでないディレクトリの階層を下降して検 索します。ディレクトリ階層を下降しないでロー カ ル ファイルを検索する例については、「使用 例」の項を参照してください。 -ls 常に真です。現在のパス名と、このパスの統計情 報を出力します。統計情報には以下の項目が含ま れています。 o i ノード番号 o KB (1024 バイト) 単位のサイズ o 保護モード o ハードリンクの数 o ユーザー o グループ o バイト単位のサイズ o 更新時刻 ファイルが特殊ファイルの場合、サイズフィール ドにはメジャーデバイス番号とマイナーデバイス 番号が入ります。 ファイルがシンボリックリンクの場合、`->' の 後に、リンクされたファイルのパス名が表示され ます。書式は、ls -gilds の書式と 同 じ で す (ls(1B) 参照)。この書式は、ls で設定されてい るのではなく、find 内部で設定されています。 -mount 常に真です。検索の範囲を、指定されたディレク トリを持つファイルシステムに限定します。他の ファイルシステムへのマウントポイントは表示し ません。 -mtime n ファイルのデータが n 日前に変更されている 場 合、真です。 -name pattern pattern が現在のファイル名と一致する場合、真 で す。通常のシェルファイル名生成文字 (sh(1) 参照) を使用できます。pattern 内のエスケープ 文 字としては、バックスラッシュ(\|) を使用し ます。find をシェルから起動する場合は、 pat- tern をエスケープするか、pattern 全体を引用 符で囲む必要があります。 /usr/bin/find では、ピリオド文字 (.) を pat- tern の先頭に明示的に指定しない場合、ピリオ ド文字 (.) で始まる現在のファイル名 は pat- tern に 一致しません。/usr/xpg4/bin/find で は、この区別は行われません。つまり、ワイルド カー ド ファイル名生成文字はピリオド文字 (.) で始まるファイル名に一致します。 -ncpio device 常に真です。現在のファイルを device に cpio -c フォーマット (5120 バイトレコード) で書き 込みます。 -newer file 現在のファイルが、file 引数で示され て い る ファイルの更新時刻以降に変更されている場合、 真です。 -nogroup ファイルが /etc/group ファイルに記載されてい る グ ループに属していないか、NIS テーブル、 NIS+ テーブルに記載されていない場 合、 真 で す。 -nouser ファイルが /etc/passwd ファイルに記載され て い る ユーザーのものでないか、NIS テーブル、 NIS+ テーブルに記載されていない場 合、 真 で す。 -ok command -exec と同様の機能ですが、生成されるコマンド 行の先頭には疑問符が出力されます。また、ユー ザーがプロンプトに答えて y を入力した場合 以 外は、コマンド行を実行しません。 -perm [-]mode mode 引数は、ファイルモードビットを 表 し ま す。 書式は、chmod(1) のシンボリックモードオ ペランド (symbolic_mode_list) と同じです。す べてのファイルモードビットがオフになっている テンプレートを想定して、次の演算子記号 (op) があればそれを解釈します。 + テンプレート上で、モードビットを オ ンにする - ビットをオフにする = プロセスのファイルモード生成マス ク の 内容に関係なく、モードビットをオ ンにする このうち - 記号は、mode 引数の最初の文字とし て記述することはできません。これは、ハイフン ではじまるオプションとの混同を避けるた め で す。初期値としてすべてのモードビットがオフに なっているので、最初の文字として - を指定 す る必要のあるシンボリックモードはありません。 ハイフンが省略されると、一次子は、ファイルの アクセス権ビットの値が結果のテンプレートの値 と等しければ、真と判定します。 mode 引数がハイフンではじまる場合は、結果 の テンプレートのビットがすべてファイルのアクセ ス権ビットで設定されていれば、真と判定 し ま す。 -perm [-]onum ファイルのアクセス権フラグが onum に指定した 8 進数字に一致すれば、真になります (chmod(1) を参照)。onum の先頭がマイナス記号 (-) の 場 合、ファイルのアクセス権フラグと比較されるの は、onum 中で設定されているビットだけにな り ます。比較の結果、一致すれば、真と判定されま す。 -print 常に真です。現在のパス名を出力します。 -prune 常に真です。一致するディレクトリ構造 内 で、 pattern より下位のディレクトリやファイルは検 査しません (「使用例」を参照)。-depth が指定 さ れている場合は、-prune の指定は無効になり ます。 -size n[c] ファイルが n ブロック長 ( 1 ブロック は 512 バイト)である場合、真です。n の後に c を指定 すると、サイズはバイト単位で示されます。 -type c ファイルの形式が c である場合、真です。こ こ で c は、b (ブロック型特殊ファイル)、c (文字 型特殊ファイル)、d ( ディ レ ク ト リ )、 D (door)、 f (プレーンファイル)、l (シンボリッ クリンク)、p (FIFO (名前付きパイプ))、s (ソ ケット) のいずれかです。 -user uname ファイルの所有者が uname に指定したユー ザー で あ る 場 合、 真 で す。 uname が数値で、 /etc/passwd ファイルに記載されているログイン 名でないか、NIS テーブルまたは NIS+ テーブル に記載されていない場合、この数値はユーザーID と見なされます。 -xdev -mount 一次子と同じ。 -xattr ファイルが拡張属性を持っている場合、真です。 [複合式] 一次子は、以下の演算子 (優先度の高い順) を使用して組み合わせ ることができます。 1) (expression) 括弧で囲まれた式が真である場 合、真 (括弧は、シェルの特殊 文字とみなされるため、 エ ス ケープする必要がある) 2) !expression 一次子の否定 (! は単項 not) 演算子 3) expression [-a]expression一次子の連結 ( and 演算子 は 2 つの一次子を並置することに より示される) 4) expression -oexpression 一次子の代替 (-o は or 演算 子) find を cpio と組み合わせて使用する場合、cpio に -L オプショ ンが指定されているときは、find に -follow 式を使用する必要が あります。cpio に -L オプションが指定されていない 場 合 は、 find に -follow 式を使用してはなりません。この条件に従わない と、予期しない結果になります。 expression を省略すると、式として -print が使用さ れ ま す。 expression を指定し、その式の中に -exec、-ok、-print のいず れも含まれていなければ、その式は次に示すものに置き換えられま す。 ( given_expression ) -print ここで、given_expression は、ユーザーが 指 定 し た 任 意 の expression を指します。-user、-group、-newer の各一次子がそ れぞれの引数を評価するのは 1 回だけです。-exec または -ok オ プションで指定したコマンドを呼び出しても、同ファイル中の後続 の一次子は影響を受けません。 【使用法】 ファイルが 2 ギガバイト ( 2**31 バイト) 以上ある場合の find の動作については、largefile(5) を参照してください。 【使用例】 例 1: ディレクトリ階層を出力する 次に示す 2 つのコマンドは、同じ意味を持ちます。 example% find . example% find . -print どちらも、現在のディレクトリ以下の階層構造をすべて出力 し ま す。 例 2: ファイルを削除する 次の例は、ホームディレクトリにある a.out または *.o という名 前のファイルのうち、1 週間アクセスされなかったものをすべて削 除します。 example% find $HOME -name a.out -o -name '*. ) -atime +7 -exec rm {} ; 例 3: すべてのファイル名 (SCCS ディレクトリを除く) を出力 す る 次の例は、現在のディレクトリとそれ以下のディレクトリ内にある ファ イル名すべてを再帰的に出力します。ただし、SCCS ディレク トリはスキップします。 example% find . -name SCCS -prune -o -print 例 4: すべてのファイル名と SCCS ディレクトリを出力する 次の例は、現在のディレクトリとそれ以下のディレクトリ内にある ファ イル名すべてを再帰的に出力します。SCCS ディレクトリの内 容は出力しませんが、SCCS ディレクトリ名は出力します。 example% find . -print -name SCCS -prune 例 5: 新しいファイルを検査する 次のコマンドは、-nt を指定した test(1) と基本的に同じです。 example$ if [ -n "$(find file1 -prune -newer file2)" ]; then printf %s\n "file1 is newer than file2" 例 6: 24 時間モードを使用してファイルを選択する -atime、-ctime、-mtime で指定する n の最小単位は 24 時 間 で す。 た と えば、ある日の 23:59 にアクセスされたファイルがあ り、その 2 分後、つまり翌日の 00:01 に次のコマンドを実行した とします。 example% find . -atime -1 print この場合、ファイルは選択の対象となります。日付は変わっていて も 24 時間は経過していないためです。午前 0 時が間にはさまっ ていても、24 時間を単位とする計算には影響はありません。 例 7: 指定したファイルアクセス権に一致したファイルを出力する 次の例は、ユーザーによる読み取り・書き込み・実行、グループに よる読み取り・実行、その他のユーザーによる読み取り・実行が許 可されており、その他のアクセス権は許可されていないファイル名 すべてを再帰的に出力します。 example% find . -perm u=rwx,g=rx,o=rx 次のように指定することもできます。 example% find . -perm a=rwx,g-w,o-w 例 8: その他のユーザーによる書き込みが許可されているファイル を出力する 次の例は、その他のユーザーによる書き込みが許可されているファ イル名すべてを再帰的に出力します (読み取り、書き込みが許可さ れているかどうかは関係ありません)。 example% find . -perm -o+w 例 9: ローカルファイル (ローカルでないディレクトリ階層は下降 しない) を出力する example% find . ! -local -prune -o -print 例 10: 拡張属性を持つ名前空間内のファイルを出力する example% find . -xattr 【環境】 find の実行に影響を与える環境 変 数 LC_COLLATE、 LC_CTYPE、 LC_MESSAGES、NLSPATH の詳細については、environ(5) を参照して ください。 【終了ステータス】 以下の終了ステータスが返されます。 0 オペランドで指定されたパスはすべて正常に検査 された >0 エラーが発生した 【ファイル】 /etc/passwd パスワードファイル /etc/group グループファイル /etc/dfs/fstypes 分散ファイルシステムパッケージを登録 したファイル 【属性】 次の属性については attributes(5) のマニュアルページを参照 し てください。 ____________________________________________________________ | 属性タイプ | 属性値 | |_____________________________|_____________________________| | 使用条件 | SUNWcsu | |_____________________________|_____________________________| | CSI | 対応済み | |_____________________________|_____________________________| | インタフェースの安定性 | 安定 | |_____________________________|_____________________________| 【関連項目】 chmod(1), cpio(1), ls(1B), sh(1), test(1), acl(2), stat(2), umask(2), attributes(5), environ(5), largefile(5) 【警告】 次のオプションは旧式で、将来のリリースではサポートされなくな ります。 -cpio device 常に真です。device 上に、現在のファ イ ル を cpio フォーマット (5120 バイトレコード) で書 き込みます。 -ncpio device 常に真です。device 上に、現在のファ イ ル を cpio -c フォーマット (5120 バイトレコード) で書き込みます。 【注意事項】 find を使用して、一定時間内に変更されたファイルを判別する 場 合 は、 -print 引数の前に -time 引数を指定します。そうしない と、すべてのファイル名が出力されます。 Solaris のルートファイルシステム下にあるファイルは、実 際 に は、mntfs や namefs などの仮想ファイルシステムのマウントポイ ントである場合もあります。ufs ファイルシステムと比較するとき に、-mount または -xdev を find 式に指定した場合、このような ファイルは選択されません。 |
|