シングル・ダブルクォーテションの意味

UNIXには、コマンドを効率よく指定するための、様々なメタキャラクタ(特殊記号)が 用意されています。これらのメタキャラクタを解釈したくないときに、 シングル・ダブルのクォーテーションを使います。

たとえば、*という記号には、「すべてのファイル名」という特殊な 意味があります。
 % ls *.c
と指定すると、まずワーキングディレクトリ配下から「*.c」の条件にあうファイルを 探し、該当するファイル名に置き換えます。そして、次にlsコマンドがそのファイル名を 使って、結果を表示しています。このように、メタキャラクタは、コマンドを実行する 前に各機能(たとえばファイル名)に置き換えます。

ところが、この指定ではマズイ場合があります。今回のfindがその例です。
 % find . -name '*.c' -print
でファイル名の*を引用符で囲む理由は、findを実行する前に勝手にファイル名を 置き換えてほしくないからです。*.cという条件をそのままfindコマンドに 渡して検索させたい訳ですから、引用符で囲んでいるのです。

戻る