Mac用户可通过创建unmount-all-shares脚本一键强制卸载所有SMB、AFP、WebDAV网络共享磁盘:先建脚本文件并赋执行权限,再写入mount | grep -E 'smbfs|afpfs|webdav' | awk '{print $3}' | while read mnt; do umount -f "$mnt"; done核心逻辑,支持终端直接运行、Dock快捷方式及桌面.app双击调用。

在Mac上需要快速清理所有已挂载的网络共享磁盘(比如SMB、AFP挂载点),避免手动逐个卸载出错或遗漏,尤其适合频繁切换网络环境、批量测试或远程运维场景。
准备可执行的断开脚本
打开“终端”(Terminal),粘贴并运行以下命令创建脚本文件:
mkdir -p ~/bin && touch ~/bin/unmount-all-shares && chmod +x ~/bin/unmount-all-shares
这一步建立了一个用户级可执行脚本位置和空文件,【必须赋予+x权限,否则后续无法运行】。不设权限会导致双击或命令调用时静默失败,无任何提示。
写入核心卸载逻辑
用nano编辑该脚本:
nano ~/bin/unmount-all-shares
将以下内容完整粘贴进去(注意保留换行):
#!/bin/zsh
mount | grep -E 'smbfs|afpfs|webdav' | awk '{print $3}' | while read mnt; do
echo "正在卸载 $mnt..."
umount -f "$mnt" 2>/dev/null || true
done
echo "已完成:所有匹配的网络共享磁盘已尝试强制卸载。"
按 Ctrl+O → 回车 → Ctrl+X 保存退出。此脚本只识别 smbfs(SMB)、afpfs(AFP)和 webdav 三类典型网络文件系统,不会误触本地磁盘或Time Machine备份卷。
绑定快捷方式一键触发
方法一:终端内直接执行
在任意终端窗口中输入 ~/bin/unmount-all-shares 并回车即可立即运行。
方法二:添加到Dock(图形化快捷入口)
第一步:打开“自动操作”App → 新建“快速操作” → 在“工作流程收到当前”下拉选“无输入” → “实用工具”中拖入“运行Shell脚本” → 将shell改为 /bin/zsh → 粘贴:~/bin/unmount-all-shares → 存为“断开所有网络磁盘” → 勾选“在菜单栏中显示”;
第二步:前往“系统设置→控制中心→快捷键”,找到刚建的快速操作,分配快捷键如 ⌘⌥U;
第三步:点击Dock右键→“选项→在Dock中保留”,即可固定图标。
方法三:创建桌面.app快捷方式(免终端)
在“自动操作”中新建“应用程序”类型工作流程,其余同方法二,保存为 .app 文件后拖入Dock或桌面双击即用。这一步生成的是真正独立应用,不依赖终端窗口存活。

















