在 OS X 上解锁“锁定”文件的命令

在 OS X 上解锁“锁定”文件的命令

我将大量只读文件从 Windows 系统复制到 Mac。使用“获取信息”查看每个文件的信息时,我发现它们已被锁定。我正在编写一个 bash 脚本来复制一些文件,但出现错误“操作不允许”,因此,首先我需要解锁这些文件。由于我会经常从 Windows 系统中提取文件,所以我希望我的脚本能够解锁这些文件。

在 OSX 上解锁“锁定”文件的终端命令是什么?

答案1

要解锁文件,您可以使用:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags= 更改文件/文件夹的标志,例如“已锁定”
  • -R= 递归或针对所有内容并跟踪指定目录中的目录
  • nouchg= 表示文件可以更改
  • /PATH/= 当然是您要更改的文件的路径。类似这样的: ~/Sites/mysite/directory/with/locked/files/也可以。

答案2

如果您想搜索整个目录并解锁所有文件,这将很有帮助。

在终端中cd进入目录

此命令将查找并打印一份清单

$ find . -flags uchg

此命令解锁它们

$ find . -flags uchg -exec chflags nouchg {} \;

运行第二条命令后,您可以使用第一条命令仔细检查所有文件是否都已解锁,瞧!

答案3

您也可以使用SetFile -a l,尽管它的功能与以下内容相同chflags nouchg

SetFile -a l file.ext

-a l取消设置锁定属性的位。您可以通过从 Xcode 的偏好设置或从developer.apple.com/downloads

答案4

实际上,可以在文件上设置两个锁定标志:uchgschg。设置了标志的文件uchg对于普通用户来说是不可改变的,但对于系统来说是可改变的。设置了标志的文件schg对于任何人都是不可变的。两个标志可以同时设置。

要查看文件上设置了哪些标志,请使用

ls -lO FILE

那是一个大写字母 o,而不是零。

要彻底解锁文件,你必须执行

chflags nouchg,noschg FILE

好像两个标志都设置了并且你只删除其中一个,它仍然会被锁定。

相关内容