macOS上chflags用法详解(纯干货,全网最全!)

  chflags改变文件标签是怎么回事呢?chflags hidden可以隐藏文件相信大家都很熟悉,但是chflags改变文件标签是怎么回事呢,下面就让小编带大家一起了解吧。
  chflags,其实就是change flags的缩写,大家可能会很惊讶chflags怎么会改变文件标签呢?但事实就是这样,小编也感到非常惊讶。下面就让小编带你们一起了解chflags的用法吧!

首先直接在终端中输入chflags,可以看到它出现了chflags命令的使用格式:

第一个参数(可选)

-f 即使chflags无法修改此文件的标志,也不显示错误/诊断信息。

-h 如果该文件是一个symbolic link(符号链接,macOS下叫做“替身”),那么仅仅修改符号链接自身,而不去修改它指向的文件。

-v 在执行操作后显示被操作的文件名

第二个参数(可选)

-R 将指定的文件/目录作为根,递归处理。在对整个文件夹操作时需要附带。

在指定-R参数后还可以附加指定下列参数:

-H 跟随命令行中的符号链接,但是不跟随目录树遍历过程中的符号链接。

-L 跟随所有的符号链接。

-P 不跟随所有的符号链接。

第三个参数(必须)

文件标志,共有以下9种:

arch/archived

必须使用sudo或 root账户

归档标志。貌似没什么用?

百度百科就一句话:归档标志是让计算机能够识别该收文有没有经过归档处理的标记。

不过貌似在拷贝文件到switch上时要对SD卡执行一次。

opaque

不透明标志。貌似没什么用?

帮助页面的原话是Directory is opaque when viewed through a union mount.

我是没看懂这啥意思,我分别尝试了给一个目录和一个文本加了此标志,感觉不出任何区别,无论是GUI还是命令行。

nodump

禁止备份标志。在mac上我猜是给时间机器用的。

日常使用下,GUI和命令行无变化。

sappnd/sappend

必须使用sudo或 root账户

使得文件只能以附加的方式修改。

在GUI中表现为文件被锁定且无法解锁,提示“您不是该文件的所有者”。

非root用户重命名和删除时系统提示需要验证身份,但是验证之后依然无法进行操作,提示没有权限。

简介中文件所有者显示为“系统”。

在命令行中使用ls -l查看权限无变化,无法使用>写入文件,但是可以使用>>将内容附加在文件最后。

uappnd/uappend

功能同sappnd。但可以不以root身份执行。

使得文件只能以附加的方式修改。

在GUI中表现为文件被锁定,尝试修改时提示解锁,但解锁会失败。

非root用户重命名和删除时系统提示需要验证身份,但是验证之后依然无法进行操作,提示没有权限。

简介中无变化。

在命令行中使用ls -l查看权限无变化,无法使用>写入文件,但是可以使用>>将内容附加在文件最后。

schg/schange/simmutable

必须使用sudo或 root账户

完全锁死文件。

在GUI中表现为文件被锁定且无法解锁,无提示。

无法重命名文件也无法删除,即使是使用sudo或root账户也不行。

简介中没有异常,文件所有者为用户自身,但是无法更改任何权限。

命令行中权限无变化。无法使用>>>操作文件。

uchg/uchange/uimmutable

功能同schg,但可以不以root身份执行。

完全锁死文件。

在GUI中表现为文件被锁定,但是可以解锁。

无法重命名文件,但是可以删除。删除前会有提示,无需验证身份。

简介中没有异常,文件所有者为用户自身,但是无法更改任何权限。

命令行中权限无变化。无法使用>>>操作文件。

hidden

最为人所熟知的参数,相信只要用macOS一段时间的用户都会,不细说了。

必须使用sudo或 root账户

禁止删除文件,禁止重命名文件。(root用户不受限制)

无法移动文件,只能复制,而且复制后的文件有着同样的标记。

但是可以随意编辑文件内容。

以上所有的参数,均可以在前面加上no来撤销(如nohiddennodump是去掉no

第四个参数

文件/文件夹路径。

  以上就是关于chflags改变文件标签的事情了,大家有什么想法呢,欢迎在评论区告诉小编一起讨论哦!