mac 系统下使用 chmod 命令修改文件权限
PC 端修改文件访问权限算是比较常用的操作,在安装部分软件时经常需要使用到。在 Mac 系统的终端上修改文件权限使用的是 Linux 中的 chmod 命令。这里详细介绍一下该命令的相关使用。
也可以直接通过 man chmod 在终端工具上查看该命令的帮助手册。
查看文件权限
ls -l 命令可以查看当前目录下所有文件的访问权限,也可以查看指定文件。比如,查看 Tomcat bin 目录中的 startup.sh 文件的访问权限时:
yifeng:bin yifeng$ ls -l startup.sh -rwxrwxrwx@ 1 yifeng staff 1904 9 27 18:32 startup.sh
上面打印的文件信息中每一部分所代表的含义,分别对应如下解释:
文件类型和访问权限 文件数量 所属用户 所在群组 文件大小 修改日期(月 日 时 分) 文件名称
第一部分详细说明一下,就以 “-rwxrwxrwx” 为例:第一个符号代表文件类型, “-” 符号表示该文件是非目录类型,“d” 符号表示目录类型;( 末尾的 @ 符号表示文件拓展属性,属于文件系统的一个功能。)
后面九个字母分为三组,从前到后每组分别对应所属用户(user)、所属用户所在组(group)和其他用户(other)对该文件的访问权限;
每组中的三个字符 “rwx” 分别表示对应用户对该文件拥有的可读/可写/可执行权限,没有相应权限则使用 “-” 符号替代。
修改访问权限
根据上面查看权限部分的介绍,修改权限也应包括访问用户、添加或取消操作、具体权限和访问文件,即:
chmod 用户+操作+权限 文件
用户部分:使用字母 u 表示文件拥有者(user),g 表示拥有者所在群组(group),o 表示其他用户(other),a 表示全部用户(all,包含前面三种用户范围);
操作部分:“+” 符号表示增加权限,“-” 符号表示取消权限,“=” 符号表示赋值权限;
权限部分:“r” 符号表示可读(read),“w” 表示可写(write),“x” 表示可执行权限(execute);
文件部分:如不指定文件名,表示操作对象为当前目录下的所有文件。
还以前面 startup.sh 文件为例,将拥有者所在群组和其他用户改为可读可写权限、取消可执行权限的使用方式为:
chmod go-x startup.sh
然后使用 ls 命令查看权限,
yifeng:bin yifeng$ ls -l startup.sh -rwxrw-rw-@ 1 yifeng staff 1904 9 27 18:32 startup.sh
可以看到,文件访问权限已经按照要求发生对应变化。
如果是复杂一点操作的话,可以同时使用多种操作符添加和取消权限,并且可以使用 “,” 符号同时对不同用户范围修改权限,比如:
chmod g+x,o+x-w startup.sh
还有一种简单的写法,使用数字表示权限部分的读/写/可执行权限类型。数字和权限类型的对应关系,可以从这张图中直观地看出来:
即,1 表示可执行,2 表示可写,4 表示可读。每种类型数字相加所得到的值表示交叉部分的公共类型。
这样的话,使用三个数字便可以分别代表三种不同用户类型的权限修改结果。比如,修改所有用户的访问权限均为可读可写可执行(rwx)的话,这样使用即可:
chmod 777 startup.sh
三个数字从前到后分别表示 u、g、o 三种用户类型的访问权限,使用时按需修改。
补充一点,有时候需要递归修改目录文件及其子目录中的文件类型,可以使用 -R 选项。
总结
以上所述是小编给大家介绍的mac 系统下使用 chmod 命令修改文件权限,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 迷宫的最短路径
- Lake Counting (POJ No.2386)
- 部分和问题(DFS)
- 为什么 React Hooks useState 更新不符预期?
- 技术分享 | MySQL 使用 MariaDB 审计插件
- 第12期:压缩表性能监测
- 第05期:使用 prometheus 监控 clickhouse 集群
- 这 6 点知识让我对 JavaScript 的对象有了更进一步的了解
- Linux进程间通信(中)之信号、信号量实践
- Linux进程间通信(下)之共享内存实践
- 手把手教你快速使用Vmware虚拟机安装Linux操作系统实验环境
- 天啊!鹅厂都开始做开发板了?网红腾讯物联网开发板终极开箱评测,让我们一睹为快!
- 我用 React 和 Vue 构建了同款应用,来看看哪里不一样(2020 版)
- 大点干!早点散----------深入剖析Redis集群原理与实验
- 微信群总是有人发广告?看我用Python写一个自动化机器人消灭他!