0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

シンボリックリンク備忘録

Posted at

はじめに

「git hooksについて知りたかったのにいつの間にかシンボリックリンクを調べていた!」
なんてことよくありますよね。

時間食っちゃうなぁ…とか思いつつ知識欲には抗えない…

シンボリックリンクとは

シンボリックリンクとは、オペレーティングシステム(OS)のファイルシステムの機能の一つで、特定のファイルやディレクトリを指し示す別のファイルを作成し、それを通じて本体を参照できるようにする仕組み。
参照:e-Words シンボリックリンクとは

何かのファイル、ディレクトリを参照できるファイルだよってことですね。
Windowsでいうショートカットにあたる。

利点

ディレクトリ構造が違っても容易にアクセスできる
毎回相対パスとか打つの面倒☞シンボリックリンクだと短い記述で住む

欠点

根本のファイルが消えたらアクセスできない

Windowsで遊んでみた

参考記事:https://sologaku.com/pc/windows-how-to-create-symbolic-link/
環境:Windows10

はじめに、で述べたようにWindowsでのショートカットにあたる機能ですからGUIの操作で簡単に似たようなことはできるのですが逆張り大好きな我々にとってはCUIで回りくどくやるのが醍醐味というところです。

リンク先(参照したいファイル)をC:Users/user/test/test.txtとしました
☝にリンクしたファイルを保存するフォルダをC:Users/user/tempとしました
C/

└ Users
│ └ uer
│   └ test
│   │  └ test.txt
│   └ temp

次に管理者権限でコマンドラインを開きます
コマンドは以下の通り

mklink [オプション] [リンクしたファイル] [リンク先]

今回の場合☟(tempフォルダの下の階層に入力した文字がファイル名になります)

mklink C:\User\user\temp\new_link C:\User\users\test\test.txt

実行結果

C:\Users\user\temp\newlink <<===>> C:\Users\user\test\test のシンボリック リンクが作成されました

確認してみると、、

C:\WINDOWS\system32>dir C:\Users\user\temp

 C:\Users\user\temp のディレクトリ

2023/08/15  18:36    <DIR>          .
2023/08/15  18:36    <DIR>          ..
2023/08/15  18:34    <SYMLINK>      newlink2 [C:\Users\user\test\test.txt]

.symlink拡張子のtest.txtへのリンクがあるnewlinkファイルが作成されていることがわかります。

フォルダのシンボリックリンクを作りたい時

mklink /D C:\User\user\temp\new_link C:\User\users\test\new_foldar

mklinkの後ろに/Dをつけます。

リモート上のファイルのシンボリックリンクをローカルに作りたい時

参照:https://atmarkit.itmedia.co.jp/ait/articles/1306/28/news106.html

セキュリティの面で、デフォルトの状態ではリモートからローカルへのシンボリックリンクの作成はできないので設定を変更します。
fsutil behavior query symlinkevaluationと入力すると以下のように出ます。

C:\WINDOWS\system32>fsutil behavior query symlinkevaluation
ローカルからローカルへのシンボリック リンクは有効です。
ローカルからリモートへのシンボリック リンクは有効です。
リモートからローカルへのシンボリック リンクは有効です。
リモートからリモートへのシンボリック リンクは有効です。

fsutil behavior set symlinkevaluation r2r:1 r2l:1と入力すると、リモートからローカルでのシンボリックリンクの作成ができるようになります。

変更後☟

C:\WINDOWS\system32>fsutil behavior query symlinkevaluation
ローカルからローカルへのシンボリック リンクは有効です。
ローカルからリモートへのシンボリック リンクは有効です。
リモートからローカルへのシンボリック リンクは有効です。
リモートからリモートへのシンボリック リンクは有効です。

意味
 remote to remoteを有効(1)にします。
 remote to localを有効(1)にします。

あとはローカル上で行ったようにコマンドを書けば動作します。

以上!

初めてQiitaでちゃんとした記事を書きました。
正確な情報を記述するよう心がけましたが、なにかおかしな点があればコメントお願いします。
拙い文章でしたが最後まで読んでくださりありがとうございました!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?