__MACOSX文件夹的作用和特点

2024-01-25 16:51:30
标签: __macosx xattr

这次Notary失败,发现是某处多了__MACOSX的目录,里面是带树结构的隐藏文件以._开头。

这些隐藏文件通常Finder看不到,只有命令行能看到。而__MACOSX文件夹是可见的。

conanchen@ConanChen ~ % ls -al /Users/conanchen/Downloads/mac_uvsl_no_maxosx/__MACOSX

total 16

drwx------ 4 conanchen staff 128 Jan 23 00:05 .

drwxr-xr-x@ 9 conanchen staff 288 Jan 25 16:19 ..

-rw-r--r-- 1 conanchen staff 224 Nov 22 06:43 ._ReleaseNotes.txt

-rw-r--r-- 1 conanchen staff 224 Nov 22 06:43 ._ngspice-41-manual.pdf

这个目录里面大部分是AppleDobule文件(._开头),记录着一些扩展苹果属性。有些文件签名以后,数据存在这些meta数据中。

当用7z压缩时,它会把扩展属性转换成__MACOSX文件夹中带树结构的对应._文件并压入压缩包,

解压时,用7z能完全恢复,而用ditto时,则会跳过._开头文件,也就是ditto会丢失__MACOSX中的._文件。

__MACOSX文件夹会保留,最后结果就是__MACOSX文件夹还会在这。

当拷贝整个文件夹时,__MACOSX文件夹也会被拷贝。

而检查签名时,一致性检查会提示._开头的文件缺少了。

conanchen@ConanChen mac64_uni % ls -al

total 31168

drwxr-xr-x 10 conanchen staff 320 Nov 27 16:40 .

drwxr-xr-x 5 conanchen staff 160 Nov 29 11:10 ..

drwxr-xr-x 2 conanchen staff 64 Nov 21 17:52 .package

-rw-r--r--@ 1 conanchen staff 45646 Nov 21 17:13 ReleaseNotes.txt

-rw-r--r-- 1 conanchen staff 4 Nov 27 16:40 alldone

drwxr-xr-x 3 conanchen staff 96 Nov 21 17:52 bin

drwxr-xr-x 3 conanchen staff 96 Nov 21 17:51 lib

-rw-r--r--@ 1 conanchen staff 2493800 Nov 21 17:13 ngspice-41-manual.pdf

-rw-r--r-- 1 conanchen staff 13406719 Nov 21 17:13 ngspice-src.zip

drwxr-xr-x 4 conanchen staff 128 Nov 21 17:51 shareac

用ls -al查看文件夹内容,会发现有的文件后面带@符号,这就是意思这个文件带扩展属性,压缩解压后,在__MACOSX里应该有对应的文件。

conanchen@ConanChen mac64_uni % xattr ngspice-41-manual.pdf

com.apple.metadata:kMDItemTextContentLanguage

然后-d可以删掉这个属性

conanchen@ConanChen mac64_uni % xattr -d com.apple.metadata:kMDItemTextContentLanguage ngspice-41-manual.pdf

conanchen@ConanChen mac64_uni % ls -al

total 31168

drwxr-xr-x 10 conanchen staff 320 Nov 27 16:40 .

drwxr-xr-x 5 conanchen staff 160 Nov 29 11:10 ..

drwxr-xr-x 2 conanchen staff 64 Nov 21 17:52 .package

-rw-r--r--@ 1 conanchen staff 45646 Nov 21 17:13 ReleaseNotes.txt

-rw-r--r-- 1 conanchen staff 4 Nov 27 16:40 alldone

drwxr-xr-x 3 conanchen staff 96 Nov 21 17:52 bin

drwxr-xr-x 3 conanchen staff 96 Nov 21 17:51 lib

-rw-r--r-- 1 conanchen staff 2493800 Nov 21 17:13 ngspice-41-manual.pdf

-rw-r--r-- 1 conanchen staff 13406719 Nov 21 17:13 ngspice-src.zip

drwxr-xr-x 4 conanchen staff 128 Nov 21 17:51 share

这时前面的@符号也没有了。这时可能根本不存在__MACOSX文件夹。然后做一次压缩解压,会发现__MACOSX文件夹出来了。这种情况特别隐蔽。

在原始文件夹没有这个目录情况下,只要带了扩展属性,压缩解压就自动会出现这个文件夹。

而且这些文件上的扩展属性也是苹果在不知什么操作的时候就会自动加上,也就是说,一个文件夹里内容随时可能自带了扩展属性。

并且在被压缩和解压后多出来__MACOSX文件夹。这就造成了在创建第三方库包的时候的麻烦。当你本地压缩时,一定要去掉所有的扩展属性。


阅读(0) 收藏(0) 转载(0) 举报/Report
相关阅读

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有