症状
ls
causes downloading online files on the DropBox folder · Issue #350 · zetamatta/nyagos- nyagos と VMware と DropBox - 標準愚痴出力
DropBox のフォルダーを \\vmware-host\Shared Folders\
経由で VM から参照できるようにすると、仮想マシン内の nyagos で ls -F
もしくは ls -l
した時、表示対象になったファイルがオンラインにしかない場合、スマートシンク機能が動作して自動ダウンロードが動き始めてしまう。ホストからだと、そういう動作はない。
原因
オンラインにしかないファイルにはリパースポイントフラグがたっており、そのリンク先を参照する動作(os.Readlink
)が「ファイルオープン」としてホスト側に伝わってしまうからのようだ。
対応
ls -F
リパースポイントがついたファイルが実際にシンボリックリンクかどうかを判別するために os.Readlink を呼ぶ動作があった。ls -F
はデフォルトのls
にエイリアスでくっつけて動作することが多く、脊髄反射でやってしまうこともあり、意識して使わないようにすることが難しい。
なので、ls -F
でリンク先を読む動作は廃止し、リパースポイントフラグで常に @
マークをつけるようにした(@
はそういう仕様ということにする)
ls -l
ls -l
ではリンク先を出力する。迷ったあげく現状維持にした。
実は VM内のエクスプローラーで共有フォルダーを参照した時も、DropBox はダウンロードをはじめてしまう。おそらく、アイコンを読む際にファイルオープンしてしまうのだろう。
そこで「エクスプローラーで無理なら、ls
も無理だよね。脊髄反射で ls -l
しないよう気をつけよう」という方針にしたわけだ。