ここ数年、夏になると「ゲリラ豪雨」に手を焼いています。一天にわかにかき曇り土砂降りになるのですから、天気予報は期待できません。夏場は原稿をノート機で書くようにしているので、突然の停電で原稿が消えてしまうことはありませんが、干した洗濯物がずぶ濡れになるのは困りますよね。
さて、今回も引き続き「シェル」について。ただし、Terminalに話を限定してもつまらないので、シェルとは関係が薄いと思われているFinderなどOS Xネイティブの機能に視点を移してみよう。
Terminalを使わず入力補完のありがたみを知る
シェルには「入力補完」という機能があり、長いファイル名やコマンド名を急いで入力したいとき役に立つ。使い方はかんたん、先頭の数文字をタイプしてTABキーを1~2度押すだけだ。
たとえば、「gunzip」というコマンドを実行したいとしよう。「g」から始まるコマンドが「gunzip」だけならば、「g」に続けてTABキーを押すだけで「gunzip」すべてを入力できてしまうのだが、実際には多数あるため、ビープ音がするだけでなにも起こらない(もう一度TABキーを押すと候補のコマンド、つまり先頭が「g」のコマンドが一覧表示される)。
だから、目的のコマンドを入力補完するには、他に一致するコマンドが検出されない状態まで文字を入力してからTABキーを押す。gunzipの場合、「gu」まで入力してからTABキーを押せばいい。入力補完はファイル/フォルダ名にも有効なので、試してみよう。
この入力補完機能、実はFinderでも利用できる。「移動」→「フォルダへ移動...」を実行し、現れた「フォルダへ移動」ダイアログにフォルダ名を入力しよう。シェルのようにTABキーを押さなくても、候補が絞り込まれるまで先頭の文字を入力していけば自動的に補完されるはずだ。ただし、カレントディレクトリは実行した時点で表示されていたFinderウインドウとなることに注意(ウインドウがない場合はデスクトップ)。
Finderの入力補完機能は、システム領域やFinderの不可視領域(ex. /bin、/var)を開きたいとき役に立つ。「~」などシェルで利用される記号の一部も利用できるので、「~/Pi」とタイプすればピクチャフォルダが、「~/Doc」とタイプすれば書類フォルダを入力補完することが可能だ。
見せたくないファイルは「ドットフォルダ」に保存せよ
Spotlightは便利だが、"おせっかい"に感じてしまう場面もある。「ライブラリ」など一部の例外を除けば、ホームフォルダ以下の全領域が自動的にインデックス化されてしまうため、不都合なファイルまで検索結果に出てしまう。すべてのファイルを白日の下に晒す必要はなし、必要なものだけ検索してくれれば足りる。
あるフォルダをSpotlightの検索対象から外すには、システム環境設定の「Spotlight」パネルの「プライバシー」タブに登録すればいいことは知っているが、個人的にこのルールはスマートと思えない。ファイルを作成/保存する時点で、隠しておきたいファイルかどうかわかっているのだから、そのとき決めるほうが後々トラブルにならないはずなのだ。
そんなとき思い出してほしいのが、「ドットファイル」は非表示扱いにするというUNIX系OSのルール。ドットファイルとは、先頭が「.」から始まるファイル/ディレクトリ(UNIXではファイルとディレクトリは厳密に区分されない)のことで、シェルにかぎらずFinderでも非表示扱いとされる。ファイル/フォルダを新規作成するとき、名前の先頭を「.」にするとエラーになるのは、これが理由だ。
Spotlightには、前述した「プライバシー」タブに登録する以外にも、Finderに非表示のファイル/フォルダは検索対象から外すというルールがある。そう、Spotlightから隠しておきたいファイルは、ドットファイルならぬドットディレクトリへ保存すればいい。
ドットディレクトリはFinderでは作成できないので、ここだけTerminalで「mkdir」コマンドを利用する。たとえば、ホームフォルダ直下に「.secrets」というディレクトリを作成するには、以下のとおりコマンドを実行すればOK。開くときには、前述したFinderの「フォルダへ移動」ダイアログに「~/.secrets」と入力すれば、Terminalを使わずに済む。Spotlightに表示されないうえにFinderでは不可視扱い、というこちらのほうが、「プライバシー」タブで管理するより安全・確実だろう。
$ mkdir ~/.secrets