#気まぐれ & 気まま & 天邪鬼な老いぼれ技術屋の日々の記録のうち、パソコン技術やインターネット技術、プリンタやPCアプリからプログラム言語などに関連した記事です。
右端上端の同一カテゴリージャンプボタンで同じカテゴリーの他の記事を順番にご覧いただけます。
Access Counter:  総アクセス数

楽 天 の 商 品

-2054- シンボリックリンク
= 今日は画像なし m(_ _)m =
”今更ながら”の話題だがいつも混乱するのでメモ。
例えば "C\Programfiles\aplicationXYZ" にインストールされたプログラムをそっくり D:\Aplications\aplicationUVW ディレクトリに移動させたい時、通常なら 一旦アンインストールしてから再インストールしなければならない。しかし、通常再インストールはいろいろな設定が元に戻ってしまうので、再設定するか そうした設定を保存したファイルを探してアンインストール前に別ディレクトリにコピー・保存しておいて、再インストール後上書きで書き戻さないとならないから かなりの手間。
更にプログラムによってはインストールディレクトリが変更できなかったり、指定のディレクトリ以外では不具合や不都合が起きたり、別のアプリケーションから起動させる場合にも起動しなくなったりする。
こうした場合に、一旦インストールしたプログラムを別のフォルダーに移動してから、元の場所には同名のシンボリックリンクを作成しておくと通常のアプリは問題なく働く(理論的には>全てかどうかは保証しません)。例えば C:ドライブにある 500MBのフォルダーを D:ドライブに移動させて、元のところに移動先のシンボリックリンクを作っておけば、C:ドライブの容量は そっくり 500MB減る。例えば C:\Programfilesフォルダー配下にあった aplicationXYZと言うフォルダーを D:に移動し、代わりにその後に元のフォルダー名と同じ aplicationXYZ と言うシンボリックリンクを作って Explorerなどでこのシンボリックリンクの aplicationXYZを開くと D:ドライブに移動した aplicationXYZ の中身が見える(こっちのフォルダー名は変えてもOK)。もちろんデスクトップのアイコンやスタートボタンの登録には何も手を加えないで従来通り使える。(シンボリックリンクの名前が元のフォルダー名と同じなら実体のフォルダー名は任意)
前置きが長くなったが、これを実現するのが Windows10などのシンボリックリンクと言う機能で実際の操作方法は以下の通り。
① マウスカーソルをデスクトップの左下のところに持っていき「ここに入力して検索」(Cortana)と言う所で一旦クリックして「cmd」とタイプする。
② その上の方に「コマンドプロンプト」と言う候補が表示されたらそこをクリックして「管理者として実行」を選択。
③ ユーザーアカウント制御ダイアログボックス「このアプリがPCに変更を加えることを許可しますか」と表示されたら「はい」をクリック。コマンドプロンプトの黒い画面が表示されるので「mklink /d (シンボリックリンクを作成するディレクトリ+シンボリックリンク名=元のフォルダー名) (シンボリックリンクが参照するフォルダーへのパス)」とタイプしてEnterキーを押す("mklink" "/d" "それぞれのディレクトリ名"の間には半角スペースを入れる)。「Google ドライブ」のようにディレクトリ名中に半角スペースが含まれる場合は全体をダブルクォーテーション(")で囲む。
例えば右の図は「Google ドライブ」配下の「HTML」と言うフォルダーの下に「jpa」と言うシンボリックリンクを作成した例。

mklink /d "C:\Users\user1\Google ドライブ\HTML\jpa" C:\xampp\htdocs\dashboard\jp

Explorerでこの「jpa」と言うシンボリックリンクをクリックすると「C:\xampp\htdocs\dashboard\jp」と言うフォルダーの実体が参照・操作できるようになる。
Webによくある説明では参照元とか参照先とかだったりディレクトリ名同士なので混乱し易い(おまけに Linuxとは順序が逆)が、前に記述するのはバーチャルな(容量0の)ディレクトリ、後に記述するのが実体のディレクトリ、と理解した方が判り易い。
今回私は、XAMPPと言うローカルPC上で働く Apacheサーバーアプリをいじっていたが、その中で D:ドライブに設定したルードディレクトリから C:ドライブのファイルをブラウザで表示する必要があり、通常なら http://と指定するのに File://と指定しなければならず、このシンボリックリンクを利用して http://のまま表示させた。
2019/03/13