Windows10で"ln"を使う方法
Golangは「一つのディレクトリの中に、一つの実行形式を作る」というスタイルようです。
で、そのディレクトリから、"go run ." とやるだけで、動き出すので、直感的に取扱いが良いです(まあ、好みの問題とは思います)。
├── RASSimulator
│ ├── bike.go
│ ├── cert.pem
│ ├── channel.go
│ ├── key.pem
│ ├── person.go
│ ├── real_person.go
│ ├── routing
│ │ └── librouting.go
│ ├── simulator.go
│ ├── util.go
│ └── virtual_person.go
├── REALSimulator
│ ├── bike.go
│ ├── cert.pem
│ ├── channel.go
│ ├── key.pem
│ ├── person.go
│ ├── real_person.go
│ ├── routing
│ │ └── librouting.go
│ ├── simulator.go
│ ├── util.go
│ └── virtual_person.go
で、現在、RASSimulator とREALSimulator の中身は、simulator.go 以外は、全く同じ となっていまして、simulator.go以外のファイルを変更する時は、その変更が同時に反映する必要があります(ライブラリ化するのが面倒くさい、という理由もある)。
一方のディレクトリのファイルを変更すれば、他方のディレクトリに直ちに反映されれば、良いのです。
これは、Unix系では"ln"コマンドを使えば、一発で解決する内容なのですが、これがWindows10でもできるかどうかかが分かりませんでしたが、どうやら、その方法はあるようです。
https://www.wannko.net/windows10/etc/sinlink.html
に記載がありました。
(というか、Microsoftも意地はらんと、Command.comのコマンド、全部UNIX系に全部合わせていけばいいのに、と思うんだが・・権利関係かなぁ? しかし、コマンドなんぞに権利が発生するのかなぁ?)
管理者モードでコマンドプロンプトを開いて、以下のようにフルパスで記載すると作成できるようです(私の場合フルパスで書かなかった場合失敗しました)
c:\Users\ebata\20220830rev196kai>mklink /D c:\users\ebata\20220830rev196kai\REALSimulator c:\users\ebata\20220830rev196kai\RASSimulatorc:\users\ebata\20220830rev196kai\REALSimulator <<===>> c:\users\ebata\20220830rev196kai\RASSimulator のシンボリック リンクが作成されました
c:\Users\ebata\20220830rev196kai>ls -la REALSimulator
lrwxrwxrwx 1 ebata ebata 45 Sep 5 15:53 REALSimulator -> /c/users/ebata/20220830rev196kai/RASSimulator
c:\Users\ebata\20220830rev196kai>rm REALSimulatorc:\Users\ebata\20220830rev196kai>ls -la REALSimulatorls: cannot access 'REALSimulator': No such file or directoryc:\Users\ebata\20220830rev196kai>ls -la RASSimulatortotal 112drwxr-xr-x 1 ebata ebata 0 Sep 5 15:59 .drwxr-xr-x 1 ebata ebata 0 Sep 5 16:05 ..-rw-r--r-- 1 ebata ebata 11551 Sep 3 20:41 bike.go-rw-r--r-- 1 ebata ebata 1643 Jul 19 19:45 cert.pem-rw-r--r-- 1 ebata ebata 5952 Aug 17 18:31 channel.godrwxr-xr-x 1 ebata ebata 0 Sep 2 01:32 data-rw-r--r-- 1 ebata ebata 1704 Jul 19 19:45 key.pem-rw-r--r-- 1 ebata ebata 13029 Aug 28 19:50 person.go-rw-r--r-- 1 ebata ebata 4259 Sep 3 16:33 real_person.godrwxr-xr-x 1 ebata ebata 0 Sep 2 01:32 routing-rw-r--r-- 1 ebata ebata 13164 Sep 5 15:58 simulator.go-rw-r--r-- 1 ebata ebata 13163 Sep 5 15:57 simulator.go~-rw-r--r-- 1 ebata ebata 8633 Sep 2 14:43 util.go-rw-r--r-- 1 ebata ebata 3164 Sep 3 20:39 virtual_person.goc:\Users\ebata\20220830rev196kai>
mklink c:\users\ebata\20220830rev196kai\REALSimulator\bike.go c:\users\ebata\20220830rev196kai\RASSimulator\bike.go
mklink c:\users\ebata\20220830rev196kai\REALSimulator\cert.pem c:\users\ebata\20220830rev196kai\RASSimulator\cert.pem
mklink c:\users\ebata\20220830rev196kai\REALSimulator\channel.go c:\users\ebata\20220830rev196kai\RASSimulator\channel.go
mklink c:\users\ebata\20220830rev196kai\REALSimulator\key.pem c:\users\ebata\20220830rev196kai\RASSimulator\key.pem
mklink c:\users\ebata\20220830rev196kai\REALSimulator\person.go c:\users\ebata\20220830rev196kai\RASSimulator\person.go
mklink c:\users\ebata\20220830rev196kai\REALSimulator\real_person.go c:\users\ebata\20220830rev196kai\RASSimulator\real_person.go
mklink c:\users\ebata\20220830rev196kai\REALSimulator\util.go c:\users\ebata\20220830rev196kai\RASSimulator\util.go
mklink c:\users\ebata\20220830rev196kai\REALSimulator\virtual_person.go c:\users\ebata\20220830rev196kai\RASSimulator\virtual_person.go
mklink /D c:\users\ebata\20220830rev196kai\REALSimulator\data c:\users\ebata\20220830rev196kai\RASSimulator\data
mklink /D c:\users\ebata\20220830rev196kai\REALSimulator\routing c:\users\ebata\20220830rev196kai\RASSimulator\routing
で、simulator.goだけは本体をコピペして、こんな感じになりました。
以上