Mac 系统如何利用软链接在根目录创建文件夹?

作者:泥瓦匠 出处:https://www.bysocket.com/2021-10-26/mac-create-files-from-the-root-directory.html

Mac 操作系统挺适合开发者进行写代码,最近碰到了一个问题,问题是如何在 macOS 根目录创建文件夹。不同的 macOS 版本处理方式不同,下面我们展开讲一下

一、为什么要在 Mac 根目录创建文件夹

有些场景程序需要访问根目录的特定文件夹,所以需要在 macOS 根目录创建文件夹。

比如 Spring Boot 工程在 Mac 操作系统本地运行时,公司会默指定 /home/data/log 类似的目录,来存储工程运行的日志。

Mac 系统如何利用软链接在根目录创建文件夹?

那怎么如何在 macOS 根目录创建文件夹,下面分不同的 macOS 版本来解决:

  • macOS@Catalina 版本
  • macOS@Big Sur 版本

二、macOS@Catalina 版本的创建文件夹方法

Mac 系统如何利用软链接在根目录创建文件夹?

第一步:关闭电脑然后重启,重启时长按 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 版本的创建文件夹方法

Mac 系统如何利用软链接在根目录创建文件夹?

第一步:启动内建的 macOS 恢复系统,关闭 SIP

第二步:运行下面命令,修改 synthetic.conf 文件

sudo vi /etc/synthetic.conf

第三步:编辑该文件,输入下面内容,将对应的文件夹映射到根目录

home    /Users/XXX/home

注意:

  • 提前创建被映射的文件夹
  • 中间是 Tab,不是空格

最后重启系统后,系统根目录就会出现了对应的文件夹,实现方式也是一个软链接的形式

四、小结

几个点可以总结出来:

  • 尽量不要再 mac 根目录操作一些命令,比如 chmod 等
  • SIP 打开后,及时关闭
  • mac 支持文件软链接形式

Original: https://www.cnblogs.com/Alandre/p/15474716.html
Author: SaaS创业之路
Title: Mac 系统如何利用软链接在根目录创建文件夹?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608058/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 深入理解mysql锁与事务隔离级别

    一、锁 1、锁的定义 锁即是一种用来协调多线程或进程并发使用同一共享资源的机制 2、锁的分类 从性能上分类:乐观锁和悲观锁 从数据库操作类型上分类:读锁和写锁 从操作粒度上分类:表…

    Java 2023年6月13日
    081
  • Markdown语法

    本地编辑器的选择 1. 推荐文本编辑器:Typora2. Typora编辑器的下载和安装 编辑器下载地址 安装步骤如下: 下载之后,双击打开,一直点击下一步则可安装好。 Markd…

    Java 2023年6月9日
    070
  • JDK、JRE、JVM傻傻分不清?

    JDK、JRE、JVM傻傻分不清? 什么是JVM? JVM全称Java Virutal Machine,即Java虚拟机,用来运行Java字节码文件,JVM是Java跨平台运行的关…

    Java 2023年6月5日
    058
  • 数据库系统概论小结(二)【面向考试】

    数据库系统概论小结(二)【面向考试】 第二章 关系数据库 2.1关系数据结构及形式化定义 2.1.1关系 域:一组具有相同数据类型的值的集合。(取值范围) 笛卡尔积:域上的一种集合…

    Java 2023年6月16日
    065
  • 4.MySQL动态拼接

    举例如下: posted @2022-09-06 23:07 NIANER2011 阅读(7 ) 评论() 编辑 Original: https://www.cnblogs.com…

    Java 2023年6月13日
    077
  • Java是编译性语言还是解释型语言 ?

    0.先说明一下怎么突然想到这个问题了. 大概思路应该是这个样子的 … JVM –> Java内存区域 –>运行时数据区域 &#821…

    Java 2023年5月29日
    068
  • 【JavaWeb-JSP】笔记汇总 — JSP 规范;EL 表达式

    JSP 规范: <strong><span>JSP &#x89C4;&#x8303;&#x4ECB;&#x7ECD;&amp…

    Java 2023年6月8日
    069
  • day04_数组

    学习目标: 1. jvm内存图入门 2. 一维数组的使用 3. 二维数组的使用 4. 数组的内存结构 5. 数组中常见算法 6. 数组中常见的异常 java程序运行在jvm上,jv…

    Java 2023年6月8日
    0127
  • 邮件任务-springboot

    springboot可以很容易实现邮件的发送 具体实现步骤: org.springframework.boot spring-boot-starter-mail 2.5.2 spr…

    Java 2023年6月13日
    065
  • 大华海康NVR录像JAVA下载及WEB播放

    近期在处理一个将NVR录像机上的录像下载到服务器并通过浏览器播放的需求。 梳理记录下过程,做个备忘,同时遇到的一些细节问题解决,也供需要的同学参考。 需求比较简单,就是把指定时间段…

    Java 2023年6月15日
    0129
  • Java 注解及其底层原理

    什么是注解? 注解的分类 Java自带的标准注解 元注解 @Retention @Documented @Target @Inherited @Repeatable 自定义注解 自…

    Java 2023年6月15日
    060
  • JavaDoc文档生成

    JavaDoc文档 JavaDoc是Sun公司提供的一种将注释生成HTML文档的技术,生成的HTML文档类似于Java的API 注释标签 标记说明标签类型@author 作者作者标…

    Java 2023年6月6日
    065
  • Java集合(简单介绍)

    集合 集合 1.集合的作用 2.集合类的分类 Collection Collection方法分类 首先看一下添加操作与批量添加操作 集合删除数据 ArrayList LinkedL…

    Java 2023年6月9日
    066
  • Java面向对象(一)

    Java面向对象(一) Java面向对象(一) – 一、面向过程(POP)与面向对象(OOP) 二、类和对象 2.1 类及类的成员 2.2 对象的创建与使用 2.3 类…

    Java 2023年6月9日
    074
  • docker内的应用访问宿主机上的mysql和Redis

    背景:宿主机部署MySQL、Redis,docker内部署tomcat、jdk 需求:tomcat内的应用访问宿主机的MySQL和Redis 方法: 一、连接地址切记不能用loca…

    Java 2023年6月8日
    0135
  • 面向对象-中级篇

    public class Test { public static void main(String[] args) { Person[] person = new Person[…

    Java 2023年6月16日
    064
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球