このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

Windowsのジャンクションを使ってファイルシステムを使いやすくする

「WindowsでHOMEをどこに設定すべきかか? あー悩む!」*1にて:

[...] やっぱり、Windowsホームとは別なホームを用意したほうがいいのかなぁ。%HOME% = %USERPROFILE%\Work 方式だと、パス名が長くなるのも嫌だったんですよね。いっそ、C:\hiyama を環境変数HOMEに指定するとか。

結局、環境変数HOMEは、%USERPROFILE%\Work (C:\Users\hiyama\Work) に設定することにしました。さらに、C:\hiyama が C:\Users\hiyama\Work の別名になるようにしました。bashを使っているときは、ホームは ~/ と書けるのでいいのですが、cmd.exeでは ~ が使えないので、タブ補完しても C:\Users\hiyama\Work の入力が面倒。\hiyama なら楽チン。

別名である C:\hiyama を作るために、ジャンクション機能というのを使ってみました。ジャンクションはマウントポイントに近い概念です。ジャンクションの一覧表示と作成をするツールに Junction.exe があります。その説明とダウンロードは、http://technet.microsoft.com/ja-jp/sysinternals/bb896768.aspx[追記]id:crafさんのコメントによると、mklinkというWindows標準のコマンドがあるので、こちらを使ったほうがいいですね。[/追記]

Junction.exeは正規なツールではないようなので、自己責任で使用ということになります。実際、Windows 7 では、Junction.exeで作ったジャンクションをdirコマンドで表示すると、変なゴミが付いています。


2010/04/28 16:09 hiyama [\??\C:\Users\hiyama\Work]
0 個のファイル 0 バイト
1 個のディレクトリ 198,902,050,816 バイトの空き領域

「\??」が不気味。

自己責任の覚悟ができたら、Junction.exe でディレクトリの別名を作ってみます。空のディレクトリ C:\hiyama を 作って、junction C:\hiyama C:\Users\hiyama\Work とすれば、\hiyama と C:\Users\hiyama\Work はまったく同じ内容となります。

僕はこの方法で、C:\tmp, C:\Users\hiyama\tmp, C:\Users\hiyama\Work\tmp の3つを一致させました。ときたま、ゴミ箱をあさるようにtmpの下を覗く事態になるのですが、tmpが3箇所もあるのは厄介です。tmpの実体が1箇所になればスッキリ。

他に、頻繁にバックアップしたほうがよいアプリケーションの設定ファイルも、実体は自分のホームに置いて、所定のディレクトリにはジャンクションを作っています。例えば、C:\Installed\meadow3\site-lisp はジャンクションで、C:\Users\hiyama\Work\site-lisp を指しています。ホーム(C:\Users\hiyama\Work)のバックアップ時に、設定ファイルもバックアップされます。

ところで、ジャンクションなんですが、リパース・ポイント(再解析ポイント)、接合ポイントなんて呼び名もなって、同じ機能なのか違うモノかよく分かりませんね。Windows OSのファイルシステムでも、ハードリンク、シンボリックリンクなどがあるのですが、ジャンクションってシンボリックリンクなのかな? ファイルシステムではなくて、シェルのレベルでサポートする .lnk とか .url なんてショートカットもあるしね。よくワカランです。

*1:引用してはじめて「か」が2個付いていたのに気づいた。