-name
そしてオプションのパラメータですか-exec
、それとも非オプションのパラメータですかfind
?これは短いオプションのように見え、私が正確に覚えている場合は照会式と呼ばれます。例えば、
find . -name "*.txt" -exec echo {} \;
答え1
このfind
コマンドには2つのオプションしかありません。POSIXでは(-H
、-L
)または5つGNUでは(返品-P
、-D
debug_opt
、-O#
)。他のすべてのパラメータはオプションではないため、オプションパラメータではありません。
オプションがあることは注目に値する。find
先にあるパスとすべての find 式は、次のパスに従う必要がありますfind [option...] path... [expression...]
。 (GNU findには「オプション」とも呼ばれる追加の基本的な項目がいくつかあります。たとえば-maxdepth
、実際にはオプションではなく式セクション内に表示されますが、警告メッセージを呼び出すとわかりやすくなると思います。)
答え2
-name
、-exec
ちょっと-print
待ってオプションfind
ユーティリティ会社にありますがオペランド。一つのオペランドは
通常、処理を完了するために必要な情報をユーティリティに提供するオブジェクトとして使用されるコマンドの引数です。オペランドは通常、コマンドラインのオプションに従います。
(からPOSIXの定義)、つまりユーティリティに何をすべきかを知らせるオプションではありません(file
コマンドから削除するファイルをrm file
知らせるなどrm
)。
find
このユーティリティのPOSIX標準の説明このオペランドを呼び出す予備選挙これはBSDシステムの名前でもあります。
GNUfind
マニュアルでは、次のように呼ばれます。表現そして目的に応じていくつかのグループに分けられます。
- テスト(例
-name
:、-mtime
) - ジョブ(例:
-delete
、-print
) - グローバルオプション(例:
-maxdepth
、-depth
) - 位置オプション(例
-follow
:) - 演算子(例、、、
-not
)-and
POSIX標準find
には2つの実際のオプションしか-H
ありません-L
。これはシンボリックリンクの処理方法に関連しています。
POSIX 標準では、ユーティリティに対して複数文字オプションまたは「長いオプション」を定義しません。これは、実装時に長いオプションを追加することを防ぎません。GNUユーティリティは、利便性を高めるために特に表現力のある長いオプションを追加することが知られています。