読者です 読者をやめる 読者になる 読者になる

C Sharpens you up

http://qiita.com/yuba に移しつつあります

WindowsのmklinkコマンドとUNIXのlnコマンドは引数が逆

Windows Linux

Windowsでシンボリックリンクを作るときは

mklink 【作るリンク】 【実ファイルパス】

で、UNIXシンボリックリンクを作るときは

ln -s 【実ファイルパス】 【作るリンク】

なので引数の順番が逆ですご注意*1

あと、mklinkでは/Hをつければハードリンクで、デフォルトならシンボリックリンクですが、lnでは逆、-sをつけたらシンボリックリンクでデフォルトならハードリンクとなります。

さらに、Windowsではファイルのシンボリックリンクとディレクトリのシンボリックリンクが区別されています。ディレクトリへのリンクは/Dオプションを付けて

mklink /D 【作るリンク】 【実ディレクトリパス】

です。ディレクトリ相手に/Dを付け忘れてファイルシンボリックリンクを作ってしまうと何の役にも立たないおもしろリンクができるのでご注意。

そのディレクトリ相手のリンクについてはWindows2000以降で使える「ジャンクション」とVista以降で使える「シンボリックリンク」があったりして、まあmklinkコマンド使ってる時点でVista以降のユーザーだってことなんですがディレクトリ共有のときとか面倒なので違いを覚えてお…くのは無理ですね。毎回ぐぐっていただければと思います。

*1:lnで順番間違えると意外な場所におもしろリンクが作られるのでお試しください。