本文基于ntfs-3g + macfuse 实现挂载ntfs硬盘,亲测M3芯片 macos15.3.2可用
用法:
# 假如脚本名ntfs_manager.sh
# 进入装载交互
./ntfs_manager.sh -m mount
# 进入卸载交互
./ntfs_manager.sh -m unmount
# 直接进入交互界面
./ntfs_manager.sh
具备以下核心功能:
- 智能识别 NTFS 格式存储设备
- 交互式命令行界面 支持挂载/卸载操作
- 自动化路径处理 动态生成安全挂载点
- 状态感知系统 实时反馈设备状态
准备
1. 下载macfuse
https://macfuse.github.io/
2. 终端安装ntfs-3g ,关键驱动
brew install ntfs-3g
具体实现
核心模块解析
1. 色彩化终端输出
RED='\033[0;31m' # 错误提示
GREEN='\033[0;32m' # 成功状态
YELLOW='\033[0;33m' # 警告信息
BLUE='\033[0;34m' # 交互提示
NC='\033[0m' # 颜色重置
2. NTFS 设备扫描引擎
只筛选ntfs设备
diskutil list | awk -v mode="$mode" '
# 类型匹配规则
ntfs_types["ntfs"] = 1
ntfs_types["msdos"] = 1
ntfs_types["Microsoft Basic Data"] = 1
ntfs_types["Windows_NTFS"] = 1
# 设备状态分析
/Mounted:[[:space:]]+Yes/ {
mounted = 1 }
/Read-Only:[[:space:]]+Yes/ {
read_only = 1 }
# 动态过滤逻辑
if (fs_type in ntfs_types) {
target_status = ""
if (mode == "mount") target_status = "(未挂载)|(只读挂载)"
if (mode == "unmount") target_status = "(读写挂载)|(只读挂载)"
if (status ~ target_status) {
print device, volume_name, status
}
}
3. 挂载逻辑(关键)
# 安全卸载原有挂载
if ! diskutil unmountDisk "$device_id" >/dev/null 2>&1; then
echo "[错误] 无法卸载设备 $device_id"
return 1
fi
# 创建挂载目录
sudo mkdir -p "$mount_point"
if [ ! -d "$mount_point" ]; then
echo "[错误] 无法创建挂载点目录: $mount_point"
return 2
fi
# 执行 NTFS 挂载
sudo ntfs-3g "$de

最低0.47元/天 解锁文章
2696

被折叠的 条评论
为什么被折叠?



