前回の記事で「Internet Explorer」「Firefox」「Opera」のキャッシュファイルの移動法について紹介しました。
ブログ内リンク:Webブラウザのキャッシュ移動方法 – IE,Firefox,Opera編
今回は残りの「Google Chrome」「Safari」についてWindowsの「シンボリックリンク」という機能を利用して
ブラウザキャッシュを移動してみたいと思います。
このふたつのブラウザは、キャッシュを移動させるための設定項目がないため、ブラウザではなくOSの機能を使います。
なので別の記事として紹介しました。少々高度な技ですが結構便利なので覚えておくと後々役に立つかもしれません。
(Chromeは起動オプションを使う方法もありますが、ここでは確実&安定のシンボリックリンクの方法を紹介)
2013年1月追記:ハードリンクとシンボリックリンクを混同してたため、一部情報が間違っていました。
長らくそのままにしてしまったことをお詫びして訂正します。
シンボリックリンク
シンボリックリンク【symbolic link】とは、ファイルやディレクトリに対して別の名前を与えて、あたかも本体がそこにあるように扱うことができる仕組みのことをいいます。UNIX系OSのファイルシステムの機能として使うことができます。
皆さんもよく使う機能であるショートカット(拡張子は.lnk)と似ていますが、決定的に異なる箇所があります。
それは、シンボリックリンクは実体と同じように扱えることです。
ショートカットはあくまで「ファイル」
ショートカットはダブルクリックなどすると確かにファイルを開いたりプログラムを起動したりすることができます。
しかし、例えばアプリケーションなどのプログラムはショートカットファイルを参照してもその先にあるファイルなどは参照してくれません。参照するのはあくまで「ショートカットファイル」で、リンク先の実体を扱うことはできません。
シンボリックリンクは実体と同じように扱える
これに対し、シンボリックリンクはリンク先の実体もアプリケーションが参照できるのです。
例えば、保存場所としてシンボリックリンクを指定しても、アプリケーションはちゃんとリンク先の実体ディレクトリへ保存させることができます。リンク自体が実体と同じように扱えるようになるのです。
(※正確に実体として扱っているわけでなはいです。リンク自体が本当に実体と同じ意味を持つのはハードリンクです)
▲シンボリックリンクを作ると以上のようにショートカットと同じアイコンが左下につきます。
←すぐ下層へ移動しているように見える
←実体はここ
これを開くと、アドレスバー上ではすぐ下の階層へ移動したように見えますが(画像上)、実体は全く別のところにあります(画像下)。ショートカットとしてではなく実体として扱われている証拠です。
また、ネットワークドライブ上にリンクを張れたり、相対リンクにも対応しています。
欠点
とても便利な機能ですが欠点もあります。
通常のショートカットのように簡単に作れないことです。コマンドプロンプトからコマンドを入力してシンボリックリンクを置く場所と、実体先を指定しなくてはいけないという面倒な作業が必要です。
シンボリックリンクの作り方
タイトルが「ブラウザキャッシュを移動する方法」なので対象を「キャッシュファイル」として解説します。
「Internet Explorer」「Firefox」「Opera」のキャッシュ移動方法は前回を参考にしてください。
ブログ内リンク:Webブラウザのキャッシュ移動方法 – IE,Firefox,Opera編
※注意点として、シンボリックリンクはVista以降の機能ですのでXPでは実行できません。
XPはJunctionソフトなど用いて移動してください。
コマンド
コマンドプロンプトを使うので「スタート」→「すべてのプログラム」→「アクセサリ」→「コマンド プロンプト」と進み「管理者権限」で実行してください。権限がないと失敗します。
シンボリックリンクのコマンドは以下の通りです。
mklink [/d] |[/h] |[/j]] リンク ターゲット /D ディレクトリのシンボリック リンクを作成します。既定では、 ファイルのシンボリック リンクが作成されます。 /H シンボリック リンクの代わりにハード リンクを作成します。 /J ディレクトリ ジャンクションを作成します。 リンク 作成されるシンボリック リンクの名前を指定します。 ターゲット 新しいシンボリック リンク先パス (相対または絶対パス) を指定します。 ※コマンドヘルプより
削除方法
シンボリックリンクの削除は通常の削除と同じようにリンクをゴミ箱にでもポイっとすればOKです。
実際にキャッシュを移動する
それでは実際にキャッシュを移動してみましょう。
まずはリンクを置くファイル・フォルダ(ここではキャッシュフォルダ)を探します。
○Google Chromeのキャッシュフォルダ
C:Users%username%AppDataLocalGoogleChromeUser DataDefaultCache
○Safariのキャッシュファイル
C:Users%username%AppDataLocalApple ComputerSafariCache.db
Chromeはフォルダ、safariはファイルでキャッシュを管理しているようです。
なのでChromeは「Cache」フォルダ、Safariは「Cache.db」ファイルを任意の場所へ移動させてください。
このとき、元の場所には「Cache」フォルダ、Safariは「Cache.db」ファイルが無い状態にしてください。
(不安ならコピー後、元のデータはリネームしてバックアップとしておけばOKです)
コマンドプロンプトを管理者権限で起動し以下のようにコマンドを入力します。
「移動先」ですが、Chromeなら「Cache」フォルダ、Safariなら「Cache.db」ファイルを指定してください。
○Google Chromeの場合
mklink /d "C:Users%username%AppDataLocalGoogleChromeUser DataDefaultCache" "移動先のCacheフォルダ"
※Chromeはフォルダなのでコマンドにオプション[/d]を加えないとリンクが張れないので注意。
○safariの場合
mklink "C:Users%username%AppDataLocalApple ComputerSafariCache.db" "移動先のCacheファイル"
コマンドを実行し「~のシンボリック リンクが作成されました」というメッセージが表示されれば移動完了です。
リンクを置いた場所にショートカットアイコンが表示され、正常にアクセスできているか確かめてみましょう。
失敗する場合は、アドレスを間違えていないかもう一度確認してください。アドレスは「””」(ダブルクォーテーション)でくくり、それぞれの指定の間には半角スペースを忘れないでください。
まとめ
以上、キャッシュの移動を目標としてシンボリックリンクの作り方を解説しました。
今回はキャッシュの移動のみですが、シンボリックリンクはどんなファイル・フォルダに対してでもリンクを張ることができます。ネットワークドライブ上にもリンクを張れる非常に便利な機能です。
リンクは実体に似た扱いを受けるので、仕様上移動させると不具合がでるデータでも移動することができます。
ショートカットと異なり少々難易度の高い技ですが、使いこなせばデータ管理も楽にできるでしょう。
パソコン操作は得意!という方は試してみてはいかがでしょうか。
コメント
コメント欄を開く
コメント一覧 (4件)
windowsではどうか知らんが、unix(macも)のシンボリックリンクはリンクファイルを消しても本体は消えないぞ。シンボリックリンクを対象とした「mv(移動、名前の変更)」「cp(複製)」「rm(削除)」はシンボリックリンクにしか影響しない。リンク先を参照するのはあくまでも読み書きのみだ。じゃなきゃ危なっかしくて使えねえよ。
リンクファイルを消しても本体に影響はないし、本体を消しても参照は切れるがリンクファイルは残る。
同じパスに新たにファイルを置けば(本体を用意すれば)また参照できるようになる。
windowsでは消えるのかも知れないが、それをシンボリックリンクと言われると抵抗がある。
ハードリンクでもリンク数が0になるまで(リンク数1のファイルを消すまで)データ自体が消えることはない。
(ファイルを新規作成すればリンク数は1)
ご指摘していただきありがとうございます。
はい、色々間違えておりました。当時の私は「シンボリックリンク」と「ハードリンク」を混同していたみたいです・・・
「シンボリックリンク」はあくまでショートカットのひとつでリンク自体を消しても本体には影響なし。
「ハードリンク」はファイル実体(UNIX系OSではiノード)そのものになる。リンクは複数作ることができ、最後の一つが消えるまでは実体が残る。リンク数が0になった時点で実体も削除される。
Windows Vista以降ではNTFSのリバースポイント機能を使ってシンボリックリンクを作る。
以上が現在の私が覚えていることです。WidnowsではMFT エントリ番号がiノードに当たるもののようで、Windowsでのハードリンクはこっちを使うみたいですね。
あまりにも恥ずかしかった&申し訳ない気分でしたので再度勉強してきます。
記事はご指摘してくださった箇所を訂正しておきました。重ねて、誤情報のご指摘ありがとうどざいます。
また、今までこの記事を見てくださった方々にもお詫び申し上げます。
「実際にキャッシュを移動する」→「3.コマンドプロンプト・・・」のところの2つ目の「◯Google Chromeの場合」は
正しくは「Safariの場合」ではないでしょうか?
参考までに・・・
ご指摘ありがとうございます。
はい、ご指摘の通りです。コピー&ペーストの悪い例です・・・
この記事は結構前に書いたものでそれなりにアクセスもありましたが、今まで訪れてくださった方々は文面から判断してくれていたようで・・・ ご迷惑をお掛けしました。
記事は修正しておきました。お忙しい中、ありがとうございました!