長すぎるパスのファイルを「以前のバージョン」から取り出す方法
NTFSが約 32,767 文字という長いパスを受け入れるようになって久しいですが、2022年10月末時点、いまだに Windows のデフォルト設定は長いパスを許容しないままです
上記の通り、レジストリをいじれば長いパスが取り扱えるようになる「らしい」のですが(未確認です)、レジストリの変更後再起動が必要なため、環境によっては上記対策を取りにくいこともあろうかと思います
また、長くなりすぎたパスへの対応として上位のフォルダ名を短くする、といった対応を取られることもあるかと思いますが残念ながら「以前のバージョン」の環境ではこの対策は不可能です
ここで、Windows が長いパスへ対応しないというなら wsl の Linux 環境から対象ファイルへアクセスしようと考えたとしても、次は wsl から「以前のバージョン」の環境へどうアクセスするか?という課題が立ちふさがります
そこで本記事では wsl の環境で「以前のバージョン」の環境をマウントする方法についてまとめておきたいと思います
「以前のバージョン」の UNC パス
実は Windows エクスプローラーでも以下のパスへアクセスすることで、「以前のバージョン」のタブを経由することなく「以前のバージョン」のファイルへアクセスすることが可能です
\\サーバ名\フォルダ名\@GMT-yyyy.mm.dd-hh.nn.ss
※ yyyy.mm.dd-hh.nn.ss の部分は以前のバージョン作成日時のGMT時間です
wsl で「以前のバージョン」のパスをマウントする
sudo mount -t drvfs '\\サーバ名\フォルダ名\@GMT-yyyy.mm.dd-hh.nn.ss' /mnt/マウントポイントとして作成したフォルダ名
あとは cp 等でコピーするだけ
マウントしてしまえばあとは普通にコピーするだけです