piapia123
ja

パス形式の変換

Web

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

同じ場所でも 4 つの表記では見た目が異なり、それぞれの領分があります:`C:\Users\me\proj` は PowerShell とエクスプローラー、`C:/Users/me/proj` は Node と Python、`/mnt/c/Users/me/proj` は WSL、`/c/Users/me/proj` は Git Bash です。 ここでは方向を選ばせず、4 つを一度に出力します —— 最も混同しやすい 2 つは取り違えてもエラーにならないためです:`/mnt/c` は WSL のマウント規約で Git Bash は解釈せず、Git Bash の `/c` は WSL 内ではルート直下にある実在の `c` というディレクトリです。取り違えると別の場所に同名フォルダが作られます。 ⚠️ 末尾のスラッシュはそのまま保持し、Windows 表記ではバックスラッシュで補います:`node scripts/` と `node scripts` はコマンドによって意味が変わります。

機能

  • 4 つの表記を一度に:Windows(バックスラッシュ)、汎用(スラッシュ)、WSL(/mnt/c)、Git Bash(/c)
  • ドライブ文字・`/mnt/c`・`/c`・UNC ネットワークパス(\\server\share)・相対パスを認識し、どれと判定したかを明示
  • ⚠️ 末尾のスラッシュは保持し、対象表記の区切り文字で補います(Windows 表記が C:\a\b/ になることはありません)
  • UNC や Unix の絶対パスに対応表記がない場合は、もっともらしいパスをでっち上げず「対応なし」と表示
  • 複数行に対応し、行ごとにまとめて変換
  • 重複した区切り文字を 1 つにまとめるオプション
  • 「バックスラッシュを全部スラッシュに置換」はしません —— Linux ではバックスラッシュも正規のファイル名文字で、1 文字ずつ置換すると別のパスを指してしまうためです

使い方

  1. パスを 1 行に 1 つ貼り付けます
  2. 必要なら「重複した区切り文字をまとめる」を有効にします
  3. 結果に 4 つの表記と判定理由が行ごとに表示されます

よくある質問

/mnt/c と /c は何が違いますか?
別の場所です。`/mnt/c` は WSL のマウント規約で Windows の C ドライブを指し、Git Bash はこの表記を解釈しません。`/c` は Git Bash(MSYS2)の表記で同じく C ドライブを指しますが、WSL 内では `/c` はルート直下にある実在の `c` という通常のディレクトリです。片方を他方の環境に貼ってもエラーにはならず、誤った場所にフォルダが作られます —— そのため本ツールは両方を出力し、正しい方を選べるようにしています。
末尾のスラッシュを削らないのはなぜですか?
コマンドの意味が変わるからです。`cp -r src/ dest` と `cp -r src dest` は移動先が存在しない場合に挙動が異なり、`node scripts/` は一部のツールでディレクトリとして扱われます。そこでそのまま保持し、対象表記の区切り文字で補います —— Windows 表記はバックスラッシュ、それ以外はスラッシュです。
UNC パスに Unix 表記がないのはなぜですか?
`\\server\share\dir` の server はネットワーク上のホストで、ローカルのマウントポイントには対応しません。WSL も Git Bash もネットワーク共有をマウントできますが方法が異なり、パス自体から導ける普遍的な表記は存在しません。そこで「対応する表記なし」と表示します —— でっち上げたパスは使えるように見えてしまうためです。
バックスラッシュを全部スラッシュに置換しないのはなぜですか?
Linux ではバックスラッシュが正規のファイル名文字だからです。`a\b` という名前のファイルは実在し得ます。そのバックスラッシュを置換すると別の(存在しない)パスを指すことになり、しかもエラーは出ません。そのため判定はパス全体の形(ドライブ文字があるか、`/mnt/` か)で行い、1 文字ずつの置換はしません。

関連ツール