Windows(シンボリックリンク)


アニメ『君の名は。』(2017)
映画館行くチャンスがなく、ようやく私もレンタルで借りて視聴しました。感想はというと、やはり忙しくても映画館で見たかった。いつものように、すれ違い感がすごく良かったし。ボリュームも感じました。胸がいっぱい。本当の一目惚れの仕組みっていうのは、夢で既に会ってて、会うと涙も出るのでしょう。映画っていいですねえ。
ところで物忘れの激しい私は、現実に会ってる人でもよく忘れます。一方的に私のことを知ってる人と会ったりすると別の意味で涙が出ます。
二人を繋げる糸ってことで、今回はシンボリックリンクです。ずっとWindowsではシンボリックリンクが作れないと思ってました。知らずに損してましたが、mklinkで作れます。シンボリックリンクも、ハードリンクも。
まずはおさらいで、Linuxのシンボリックリンクから見てみます。

ファイルのシンボリックリンク(Linux)

takk@takkpc:~/aaa$ echo hello > file1.txt
takk@takkpc:~/aaa$ ln -s file1.txt file2.txt
takk@takkpc:~/aaa$ cat file2.txt
hello

ファイルのシンボリックリンク(Windows)

Windowsでは、パラメータの指定順序が逆になります。linuxは左から右の法則なので、それと逆と覚えておけばよいです。

C:\Users\takk\aaa>echo hello > file1.txt

C:\Users\takk\aaa>type file1.txt
hello

C:\Users\takk\aaa>mklink file2.txt file1.txt
file2.txt <<===>> file1.txt のシンボリック リンクが作成されました

C:\Users\takk\aaa>type file2.txt
hello

C:\Users\takk\aaa>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は C288-F709 です

 C:\Users\takk\aaa のディレクトリ

2017/08/15  18:07    <DIR>          .
2017/08/15  18:07    <DIR>          ..
2017/08/15  18:07                 8 file1.txt
2017/08/15  18:07    <SYMLINK>      file2.txt [file1.txt]
               2 個のファイル                   8 バイト
               2 個のディレクトリ  98,862,325,760 バイトの空き領域

C:\Users\takk\aaa>

ディレクトリのシンボリックリンク(Linux)

Linuxではディレクトリのシンボリックリンクもファイルと同じです。

takk@takkpc:~/aaa$ mkdir dir1
takk@takkpc:~/aaa$ mv file1.txt dir1/
takk@takkpc:~/aaa$ ln -s dir1 dir2
takk@takkpc:~/aaa$ ls dir2
file1.txt
takk@takkpc:~/aaa$

ディレクトリのシンボリックリンク(Windows)

Windowsでは、ディレクトリの場合、/Dオプションが必要になります。

C:\Users\takk\aaa>mkdir dir1

C:\Users\takk\aaa>mklink /d dir2 dir1
dir2 <<===>> dir1 のシンボリック リンクが作成されました

C:\Users\takk\aaa>move file1.txt dir1\
        1 個のファイルを移動しました。

C:\Users\takk\aaa>dir /b dir2
file1.txt

C:\Users\takk\aaa>

コメント

タイトルとURLをコピーしました