Windows 与 macOS 文件系统及常用目录对照
Windows 和 macOS 的文件系统在路径表示和目录组织上有明显差异:Windows 通常以盘符为起点(如 C:\\),使用反斜杠 \;macOS 只有一棵以根目录 / 为起点的目录树,使用正斜杠 /。
常用目录
下表中的 <用户名> 需要替换为当前登录用户的名称。
| 目录用途 | Windows 路径(示例) | macOS 路径(示例) |
|---|---|---|
| 用户主目录 | C:\Users\<用户名> |
/Users/<用户名>(即 ~) |
| 桌面 | C:\Users\<用户名>\Desktop |
/Users/<用户名>/Desktop(即 ~/Desktop) |
| 文稿 | C:\Users\<用户名>\Documents |
/Users/<用户名>/Documents(即 ~/Documents) |
| 下载 | C:\Users\<用户名>\Downloads |
/Users/<用户名>/Downloads(即 ~/Downloads) |
| 图片 | C:\Users\<用户名>\Pictures |
/Users/<用户名>/Pictures(即 ~/Pictures) |
| 音乐 | C:\Users\<用户名>\Music |
/Users/<用户名>/Music(即 ~/Music) |
| 影片 | C:\Users\<用户名>\Videos |
/Users/<用户名>/Movies(即 ~/Movies) |
| 用户级应用数据或配置 | C:\Users\<用户名>\AppData\Roaming |
/Users/<用户名>/Library/Application Support(即 ~/Library/Application Support) |
| 用户级应用缓存 | C:\Users\<用户名>\AppData\Local\<应用名>\Cache |
/Users/<用户名>/Library/Caches(即 ~/Library/Caches); deepseek: /Users/<用户名>/Library/Caches/TemporaryItems |
| 临时文件 | 通常由 %TEMP% 或 %TMP% 指向,如 C:\Users\<用户名>\AppData\Local\Temp |
由 $TMPDIR 指向,通常位于 /var/folders/.../T/ |
这些是常见默认路径,实际位置可能因系统配置、企业策略、文件夹重定向或应用自身设置而变化。编写脚本时,应优先读取系统环境变量或调用平台 API,不要硬编码用户名和完整路径。
路径表示差异
- Windows 使用盘符区分卷,如
C:\、D:\;macOS 将所有卷挂载到同一棵目录树中,外接磁盘通常位于/Volumes/<卷名>。 - Windows 路径通常使用反斜杠
\;macOS 和其他 Unix 类系统使用正斜杠/。 ~在 macOS 的 shell 中表示当前用户主目录。在 Windows PowerShell 中,~也可以表示当前用户主目录,但传统cmd.exe通常使用%USERPROFILE%。- Windows 默认文件系统通常不区分文件名大小写。macOS 的默认文件系统也通常不区分大小写,但可以配置为区分大小写,因此跨平台项目不应依赖大小写不敏感行为。
跨平台开发
许多开发库会自动选择当前平台的标准目录。例如 Python 可以使用 platformdirs 获取配置、缓存和数据目录;Node.js 可以结合 os.homedir()、os.tmpdir() 和 path 模块构造路径。
不要只通过字符串替换来转换路径分隔符,因为盘符、挂载点和保留字符等差异无法用 \ 与 / 的简单互换完整处理。C:\Users\me 被表示为 /c/Users/me 或 /mnt/c/Users/me 只存在于特定兼容环境中:
- Git Bash、MSYS2 等环境常将
C:\映射为/c/。 - WSL 通常将
C:\挂载为/mnt/c/。 - macOS 本身不会自动将 Windows 的
C:\转换为/c/。
虚拟机共享文件夹
在 Mac 上通过 Parallels Desktop 等虚拟机软件运行 Windows 时,可以将 macOS 的“桌面”“文稿”等目录共享或映射到 Windows。是否自动共享、映射到哪个路径,取决于虚拟机软件和当前虚拟机的配置;使用前应在共享设置中确认。
