Mac 系统如何利用软链接在根目录创建文件夹?
Mac 操作系统挺适合开发者进行写代码,最近碰到了一个问题,问题是如何在 macOS 根目录创建文件夹。不同的 macOS 版本处理方式不同,下面我们展开讲一下
一、为什么要在 Mac 根目录创建文件夹
有些场景程序需要访问根目录的特定文件夹,所以需要在 macOS 根目录创建文件夹。
比如 Spring Boot 工程在 Mac 操作系统本地运行时,公司会默指定 /home/data/log
类似的目录,来存储工程运行的日志。
那怎么如何在 macOS 根目录创建文件夹,下面分不同的 macOS 版本来解决:
-
macOS@Catalina 版本
-
macOS@Big Sur 版本
二、macOS@Catalina 版本的创建文件夹方法
第一步:关闭电脑然后重启,重启时长按 command + R 键,启动内建的 macOS 恢复系统
第二步:从菜单栏找到终端工具,运行下面命令,然后重启:
csrutil disable
这个命令目的是关闭 SIP,SIP 全称为「System Integrity Protection」即「系统完整性保护」。可以通过 csrutil status
查看其 SIP 状态。
第三步:重启完后,先重新挂载根目录,打开终端工具运行下面命令即可:
sudo mount -uw /
第四步:创建对应的 /Users/XXX/home/data/log
文件夹,然后将对应的文件目录软链接到根目录。运行下面命令即可:
sudo ln -s /Users/XXX/home /home
注意:需要用软链接来解决,是因为在根目录直接创建文件夹的话,一旦重启电脑,之前创建的目录又是只读权限了。
最后,重新重启 command + R 键,启动内建的 macOS 恢复系统,重新打开 SIP:
csrutil enable
三、macOS@Big Sur 版本的创建文件夹方法
第一步:启动内建的 macOS 恢复系统,关闭 SIP
第二步:运行下面命令,修改 synthetic.conf 文件
sudo vi /etc/synthetic.conf
第三步:编辑该文件,输入下面内容,将对应的文件夹映射到根目录
home /Users/XXX/home
注意:
-
提前创建被映射的文件夹
-
中间是 Tab,不是空格
最后重启系统后,系统根目录就会出现了对应的文件夹,实现方式也是一个软链接的形式
四、小结
几个点可以总结出来:
-
尽量不要再 mac 根目录操作一些命令,比如 chmod 等
-
SIP 打开后,及时关闭
-
mac 支持文件软链接形式
本文文字及图片出自 InfoQ
你也许感兴趣的:
- 【外评】电脑从哪里获取时间?
- 【外评】为什么 Stack Overflow 正在消失?
- Android 全力押注 Rust,Linux 却在原地踏步?谷歌:用 Rust 重写固件太简单了!
- 【外评】哪些开源项目被广泛使用,但仅由少数人维护?
- 【外评】好的重构与不好的重构
- C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光
- 【外评】代码审查反模式
- 我受够了维护 AI 生成的代码
- 【外评】Linux 桌面市场份额升至 4.45
- 【外评】作为全栈开发人员如何跟上 AI/ML 的发展?
你对本文的反应是: