シンボリックリンクを利用したOneDriveへのアップロード方法

自分用の備忘録としてシンボリックリンクを利用したOneDriveにCドライブを圧迫せずにパソコンのファイルを同期する方法を書いていきます。

この方法はOneDriveだけでなく、Dropbox等の他のクラウドサービスにも応用できるかと思います。

シンボリックリンクを使用してファイルを同期することでCドライブの容量を圧迫することなくパソコンに保存してあるファイルをOne Driveにアップロードできます

特にSSDをCドライブに使用している人やいくつもHDDを使用している人には有効な方法になると思います

追記

クリック操作で簡単にシンボリックリンクを作成できる方法を記事にしたのでこちらも参照いただくとより作業しやすいです。

シンボリックリンクをクリックだけで簡単に作成する方法(Link Shell Extension)

Windows 10を基本に書いていきますが、7や8等でも参考になると思います。

超簡潔なシンボリックリンクの説明

ちなみにシンボリックリンクをすごく噛み砕いて説明すると
あるファイルを違うフォルダやドライブにも保存しておきたい場合に容量を食わずに保存してあると見せかけることができるものです。

普通だと単純にコピーして2つのファイルにしてしまいますが、これだと容量がファイル2個分になってしまいます。
そこでシンボリックリンクを使用すると容量がファイル1つ分ですむのです。

もっと詳しい説明はググってください。

OneDriveのインストール(省略)

OneDriveについては下記リンクからダウンロードできます

https://onedrive.live.com/about/ja-jp/

また、下記リンクは私のOneDrive紹介リンクです。
こちらから登録されますと0.5GBのボーナス容量が追加されます。

インストール手順に関しては省略します

すでにシンボリックリンクを利用してOneDriveにファイル、フォルダをアップロードしている場合は再インストールが必要です

理由はシンボリックリンクを作成して同期させてもすでにあるファイル等をOneDriveがダウンロードしてきてしまい、シンボリックリンクに上書き保存してしまって、実際に容量を食ってしまうからです

追記

もしかしたらすでにファイルがOneDriveにあっても大丈夫かもしれません。
いったんOneDriveを終了してからシンボリックリンクを作成し、再度OneDriveを立ち上げると自動でアップロードが始まると思います。

コマンドプロンプトの起動

OneDriveをインストールしたらコマンドプロンプトを起動させてシンボリックリンクを作成していきます

デスクトップのWindowsマーク(四つの四角が書いてあるアイコン)を右クリックしてコマンドプロンプト(管理者)(A)を選択します

20161122_%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%97%e3%83%ad%e3%83%b3%e3%83%97%e3%83%88%e7%ae%a1%e7%90%86%e8%80%85a

すると出てきたウィンドウの三行目に下記文章が表示されます

C:\WINDOWS\system32>

この>のあとにシンボリックリンクのコマンドを入力していきます。

20161122_%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%97%e3%83%ad%e3%83%b3%e3%83%97%e3%83%88%e7%ae%a1%e7%90%86%e8%80%85a_%e3%82%a6%e3%82%a3%e3%83%b3%e3%83%89%e3%82%a6

シンボリックリンクのコマンド入力

 シンボリックリンクを作成するコマンドプロンプトのコマンドについて書いていきます

シンボリックリンクの基本文

まずはシンボリックリンクの基本文です
シンボリックリンクを作成するためのコマンドはmklinkです

コマンドプロンプトにmklinkと入力すると下記のような簡単な使い方も出てきます

シンボリック リンクを作成します。
MKLINK [[/D] | [/H] | [/J]] リンク ターゲット
/D ディレクトリのシンボリック リンクを作成します。既定では、
ファイルのシンボリック リンクが作成されます。
/H シンボリック リンクではなく、ハード リンクを作成します。
/J ディレクトリ ジャンクションを作成します。
リンク 新しいシンボリック リンク名を指定します。
ターゲット 新しいリンクが参照するパス (相対または絶対)
を指定します。

シンボリックリンクを作成するときの基本文は下記の通りです

基本文
C:\WINDOWS\system32>mklink /Dリンクターゲット

基本文の解説

[[/D] | [/H] | [/J]]:シンボリックリンクを作成するときは/Dを使用します

リンク:シンボリックリンクを作成したい場所のことです

ターゲット:シンボリックリンクとして使用したいファイルやフォルダのことです

リンク・ターゲットはファイルやフォルダの場所を入力します

シンボリックリンクの例文

例えばマイドキュメントというフォルダのシンボリックリンクをOneDriveに作成したいときの例文です

C:\WINDOWS\system32>mklink /D “C:\Users\ユーザー名/OneDrive\Documents”“C:\Users\ユーザー名\Documents”

これをコマンドプロンプトに入力し、作成が成功した時の例文が以下の文です

C:\WINDOWS\system32>mklink /D “C:\Users\ユーザー名\OneDrive\Documents” “C:\Users\ユーザー名\Documents”
C:\Users\ユーザー名\OneDrive\Documents <<===>> C:\Users\ユーザー名\Documents のシンボリック リンクが作成されました

これでシンボリックリンクが作成され、OneDriveでアップロードするフォルダとして作成したシンボリックリンクを選択すればアップロードが始まります

あとはアップロードが完了するのを待つだけです

リンクやターゲットにスペースが入力されている場合

リンクとターゲットの各文の中にスペースがある場合は”で囲います
例えばフォルダの名前にスペースを入れている場合です。
リンクとターゲットの間にあるスペースはまた違います。上記の例文はリンクとターゲットにスペースはありませんがめんどくさいので囲っているだけです

スペースがある場合の例:C:\Users\ユーザー名\OneDrive\Documents and others

「既に存在するファイルを作成することはできません。」というエラー表示が出る場合

例文の“C:\Users\ユーザー名\OneDrive\Documents”この部分をC:\Users\ユーザー名\OneDriveと記入してしまうと「既に存在するファイルを作成することはできません。」とエラー表示が出てしまいます

その場合は何か任意のフォルダ名をコマンドに付け加えてあげなくてはなりません。
例文の場合だとDocumentsがフォルダ名にあたります

注意点

・シンボリックリンクを作成してもすぐに普通のファイルやフォルダとなってしまう場合はOne Driveを再インストールしてシンボリックリンクを作成してから改めて同期するフォルダを選択する

・「既に存在するファイルを作成することはできません。」と表示される場合はリンク名がC:\Users\ユーザー名\OneDriveとなっていないか確認する。(シンボリックリンクの例文の項を参照)

・リンクとターゲットにスペースが入る場合はで囲む

コメントを残す

const commentIframes = document.getElementsByClassName('jetpack_remote_comment'); window.addEventListener('message', function(event) { if (event.origin !== 'https://jetpack.wordpress.com') { return; } if (!event?.data?.iframeUniqueId && !event?.data?.height) { return; } const eventDataUniqueId = event.data.iframeUniqueId; // Change height for the matching comment iframe for (let i = 0; i < commentIframes.length; i++) { const iframe = commentIframes[i]; const url = new URL(iframe.src); const iframeUniqueIdParam = url.searchParams.get('iframe_unique_id'); if (iframeUniqueIdParam == event.data.iframeUniqueId) { iframe.style.height = event.data.height + 'px'; return; } } }); })();