如何从目录中递归清除(删除)macos 扩展属性?

如何从目录中递归清除(删除)macos 扩展属性?

我从 GitHub 下载并解压了一个档案(自酿啤酒/酿造/root) 放到(借助)下的临时目录中sudo。如果我这样做,ls -l我会看到一个扩展属性:

total 0
drwxr-xr-x@ 16 root  wheel  512 Jul  2 09:30 brew-master

如果我这样做ls -l@(感谢这个答案这个问题)我得到以下输出:

total 0
drwxr-xr-x@ 16 root  wheel  512 Jul  2 09:30 brew-master
    com.apple.quarantine     59 

如果我这样做,ls -l@ brew-master我会得到以下输出:

total 48
-rw-r--r--@  1 root  wheel    98 Jul  2 09:30 CHANGELOG.md
    com.apple.quarantine      59 
-rw-r--r--@  1 root  wheel  3161 Jul  2 09:30 CODE_OF_CONDUCT.md
    com.apple.quarantine      59 
-rw-r--r--@  1 root  wheel   720 Jul  2 09:30 CONTRIBUTING.md
    com.apple.quarantine      59 
-rw-r--r--@  1 root  wheel  1334 Jul  2 09:30 LICENSE.txt
    com.apple.quarantine      59 
drwxr-xr-x@  7 root  wheel   224 Jul  2 09:30 Library
    com.apple.quarantine      59 
-rw-r--r--@  1 root  wheel  7374 Jul  2 09:30 README.md
    com.apple.quarantine      59 
drwxr-xr-x@  3 root  wheel    96 Jul  2 09:30 bin
    com.apple.quarantine      59 
drwxr-xr-x@  5 root  wheel   160 Jul  2 09:30 completions
    com.apple.quarantine      59 
drwxr-xr-x@ 48 root  wheel  1536 Jul  2 09:30 docs
    com.apple.quarantine      59 
drwxr-xr-x@  5 root  wheel   160 Jul  2 09:30 manpages
    com.apple.quarantine      59 

这个答案这个问题告诉我清除xattr -d属性但它只对单个文件或目录条目起作用。

我如何递归地清除此属性?

PS 如果我将下载的文件解压到非根子目录中,我似乎会得到类似的隔离属性。

答案1

快速简便的解决方案(结合这个答案这个问题这篇博文):

xattr -cr brew-master

sudo(当且仅当它在根目录下时使用)

稍微更精致的解决方案来自同一篇博文

xattr -r -d com.apple.quarantine brew-master

更好的解决方案是使用命令行工具来获取并提取此类档案,以便从一开始就避免此类问题。此类解决方案是关于如何手动安装 Homebrew 的回答

答案2

不用 brew 也可以这样做:

xattr -r -d  com.apple.metadata:kMDItemWhereFroms /Users/MyUserName/Downloads/FolderContainingFilesAndOtherFolders

从特定文件夹中的任何内容中删除这些数据。

相关内容