别慌你下载的压缩包解压之后冒出一个叫__MACOSX的文件夹或者一堆以._开头的怪文件这事我见得太多了。第一次遇到的人十有八九会以为自己下载的东西坏了或者电脑中病毒了。非也非也这玩意儿基本可以理解为苹果电脑在你眼前留下的一个“幽灵”。今天这篇文章就把这个“幽灵”的来龙去脉和从根上处理它的方法原原本本教你一遍。我尽量不讲教科书就按咱们实际干活的路子来。看完之后你再遇到这种解压产物随手删掉就行再也不用提心吊胆。1. 解压后出现的“macosx”文件夹到底是什么先给你吃颗定心丸解压后出现__MACOSX文件夹在绝大多数情况下代表你解压的这个zip压缩包是用苹果Mac电脑的“归档实用工具”制作的仅此而已。它本身不是病毒也不是文件损坏更不是别人故意塞进来的隐藏后门。它只是Mac系统在压缩时顺手写进去的一些“附赠品”。1.1 名字里藏着真相__MACOSX是Mac的“习惯动作”在技术圈压缩包本质上就是一个盒子不同的打包工具往盒子里装东西的方式不一样。Windows上右键“发送到→压缩文件夹”做出来的zip和Mac上直接选中文件点击“压缩”做出来的zip虽然都能被双方打开但内部构造有明显差别。Mac的归档工具在做zip压缩时默认会在打包内容的根目录下额外创建名为__MACOSX的文件夹。这个文件夹里存放的不是你原本的文件数据而是Mac系统在Finder文件管理器里看到的一些额外属性比如文件的“彩色标签”颜色Finder里的注释、自定义图标文件夹看到哪个视图模式列表、图标、分栏某些文件的“资源分支”老Mac系统的遗产现在少见但框架还在说白了这是Mac为了确保压缩包解压到一台Mac上时能尽量还原出原来的观感和高级属性所以悄悄塞了一堆“元数据”。Windows里没有这套东西所以解压工具直接把它们原样暴露了出来看着就像一堆没用的垃圾文件。1.2 另一个常客._开头的隐藏小文件和__MACOSX文件夹一起出现的往往是大量以._开头的小文件比如._readme.txt、._photo01.jpg。这些文件不是0KB就是几KB它们同样是Mac系统写入的“AppleDouble”文件作用是存放对应文件的额外资源信息。更狠的一点在于这些._文件通常都是隐藏属性。如果你在Windows上解压后默认看到了说明你用的压缩软件勾选了“显示隐藏文件”或者这些文件没有标志隐藏位。在Mac本地上Finder里根本看不到它们但在Windows里它们就是活生生地躺在那删不删都碍眼。知道这层原理以后你判断问题的思路就清晰了解压后出现__MACOSX和._文件是Mac系统压缩工具的固有行为不是数据异常。1.3 它和病毒、木马的区别在哪里市面上的确存在一些伪装文件名字看起来像__MACOSX比如__MACOSX.exe那就得警惕。但标准的__MACOSX是一个文件夹里面通常没有可执行的.exe或.dll文件都是一些零散的元数据。做个粗浅的判断标准情况判断解压后只有__MACOSX文件夹 ._文件没有多余exe正常可以删解压后出现__MACOSX.exe、.scr、.vbs等可执行脚本危险需要全盘杀毒__MACOSX文件夹里塞着不明.app、.command文件可疑不要轻易双击压缩包来源不正规且文件名带“破解”“注册机”等字样高度警惕优先全盘查杀这里我不能保证100%排除所有恶意情况毕竟网络环境复杂但至少在你没有主动下载奇怪软件的前提下看到__MACOSX文件夹基本不用慌。2. 哪些东西能删、哪些东西碰不得一次给你讲透知道它是什么下一步就是处理。但处理前我们必须先想清楚一件事这些文件到底有没有用删了会不会影响压缩包里的正经内容2.1 绝大多数场景下放心大胆地删如果你只是从网上下了个电影、App安装包、素材文档、绿色软件解压后看到__MACOSX和一排._文件直接删掉完全不影响正常使用。原因很简单你真正要的工程文件、照片、表格、程序都以真实文件形式躺在根目录里。而__MACOSX里的那些元数据在Windows上根本派不上用场。Windows有自己的文件属性和缩略图机制不读Mac那套数据你删了它该用的东西一样能用。我自己处理过的案例里最常见的就是设计公司发来一套素材包解压出个__MACOSX文件夹里面一堆.DS_Store和零碎数据。直接全选删除素材打开一切正常没有任何附带损害。2.2 需要留个心眼的场景这个世界上没有绝对的事。如果说你处于以下这几种情况那就要先想想再动手压缩包是别人从Mac上制作并专门用于Mac的比如里面有.app程序包、.dmg镜像、开发者签名文件这时__MACOSX里的元数据理论上能帮助恢复部分Mac属性但仅仅体现在颜色标签等外观层面功能影响微乎其微。你想要反向把解压后的文件夹重新压成zip再发给Mac用户。如果你在Windows上把__MACOSX删了再重新压缩重新生成的zip里就没了Mac元数据。对一些设计师、开发者来说这可能导致对方收到文件后看不到原本的Finder标签和备注不过对普通同事间的收发文件几乎没影响。极个别软件特别是老式的Mac专用软件包在启动时如果发现对应的._文件不存在可能会自动重建或报错。Windows环境下这种兼容问题基本遇不到但在Mac上跑就有概率出现。2.3 删之前多看一眼这几种特殊情况即使可以删我也建议你先扫一眼文件夹内容防止手滑。以下情况需要额外注意__MACOSX文件夹里如果存在一个叫.filename之类的隐藏入口与根目录的文件同名而且根目录文件内容看起来不对比如0字节说明制作方可能把真正有效的数据放进了AppleDouble文件里。这种包往往来自非常老的Mac备份盘。遇到这个情况建议把._文件改名还原去掉._前缀再尝试打开。假如你下载的是“某某软件绿色免安装版”解压后程序本该在根目录运行却发现打不开而__MACOSX目录下有个同名文件那也别光顾着删。先对照一下根目录文件的文件大小如果几乎为0说明真正的程序主体被装进了隐藏文件里。这种情况多见于有人误操作压缩时把主程序包放到了错误的层级。当然以上都属于极端场景对98%的小白用户完全用不上。你只要记住普通的解压包直接删__MACOSX没问题。3. 怎么干净彻底地处理掉这些“Mac幽灵”现在进入实操环节。我按不同使用环境分别给你一套可以直接照抄的处理方案。这里的核心思路不只是删文件而是让你能够高效、批量、不出错地完成清理。3.1 Windows 资源管理器最快的手动清理法如果你只是偶尔遇到一次那最省事的方式就是手动删。操作步骤解压完成后打开解压目录。按一下键盘上的F2有的电脑还需要按FnF2没用直接看工具栏“查看→勾选‘隐藏的项目’”。找到文件夹名称中带__MACOSX的目录右键删除。按住CtrlA全选剩余文件再按住Ctrl键点击排除你需要的文件把所有以._开头的文件删掉。没记错的话默认资源管理器可能不显示隐藏文件如果你压根儿看不见._开头的小文件那你只需删掉__MACOSX这一个文件夹就收工。为了彻底清理我建议你在资源管理器的地址栏输入cmd再回车能快速打开终端配合后面的命令批量清理比鼠标一个个点快得多。3.2 命令行Windows、Mac、Linux 通用的终极方案既然要来干货隆重推荐一条命令能把这堆Mac垃圾连根拔起。在Windows的命令提示符管理员或普通权限均可下进入解压目录执行del /s /q /f ._* rd /s /q __MACOSX这行的作用先删除当前目录及所有子目录下的._开头的文件然后彻底删除__MACOSX文件夹。在Mac的终端里操作也类似find . -name ._* -delete find . -name __MACOSX -type d -depth -exec rm -rf {} \;在Linux里或很多NAS系统上find . -name ._* -delete find . -type d -name __MACOSX -exec rm -rf {} 这几条命令我没少用实测下来最稳的地方在于它不会误删正常文件。只要你的正常文件不以._开头就没任何风险。3.3 更精确的批处理针对已经解压的文件夹上面命令是“先删后删”粗暴流如果你发现自己经常处理来自Mac用户的压缩包比如设计协作、跨国项目资源包我建议你写一个命令行脚本一键清理桌面指定文件夹里的所有Mac残留。Windows下新建一个清理mac残留.bat文件内容这样写echo off setlocal enabledelayedexpansion set /p target请输入要清理的文件夹路径 cd /d %target% del /s /q /f ._* 2nul for /d /r %%i in (__MACOSX) do rd /s /q %%i echo 清理完成。 pause用的时候把文件夹路径拖进窗口回车就完事。对整个目录树下所有的__MACOSX和._文件一次全清。这个脚本我常年放在U盘里谁需要就给谁发一份。3.4 上传、分享前的预防措施两台系统之间的压缩习惯比起事后清理我更推荐你在源头上避免产生__MACOSX或者至少在发送压缩包之前就把它处理干净。不同系统有不同的做法。如果你是Mac用户要在Mac上压缩好一个zip发给Windows朋友请你在终端里用这种方式zip -r -X 输出文件名.zip 要压缩的文件夹名其中-X参数的含义是“不保存额外文件属性”这样生成的zip里就不会再带__MACOSX文件夹。我自己这么多年发跨平台压缩包只要是用终端打包全都加-X一个Mac残留都不会有。如果你用Finder右键压缩软件层面可以换用BetterZip或者The Unarchiver来打包解压它们都有选项可以设置“排除Mac资源文件”。如果你是Windows用户给别人发压缩包时推荐使用7-Zip或Bandizip而不是系统自带的压缩功能。7-Zip在“添加到压缩包”时有一个“压缩选项”你可以手工把__MACOSX和._*这些文件“排除”在压缩列表之外。Bandizip则在“设置→压缩→排除”里有专门的“排除文件”字段把__MACOSX和._*写进去就行。3.5 手机上遇到同样的场景现在很多人直接在手机上解压文件尤其是在网盘、邮件里收到压缩包时。手机端处理起来其实更简单。安卓上我用过的ZArchiver、RAR等解压工具解压完成后你同样会看到__MACOSX文件夹。直接长按选中删除即可不影响其他文件。iPhone上如果没有专门管理文件的工具实际上iOS的原生“文件”App在解压zip时会自动过滤掉__MACOSX和._文件所以你反而看不到它们。需要留意的是手机上删除文件时不要误触相邻文件建议在文件管理器里先按“名称”排序__MACOSX通常会排在字母表靠后的位置方便你快速定位。4. 常见问题速查与迷思破解踩坑记录下面几条都是我在实际答疑和教程评论里被问到最多的问题。我直接以速查表给你省得你再到处问人。4.1 解压后只有个“__MACOSX”文件夹真正的文件在哪这通常是你的解压工具把目标文件解压到了上一级目录或者压缩包本身结构比较特殊。解决办法打开__MACOSX文件夹看看里面有没有你要找的文件。如果它里面确实有正经文件名的文件说明这个压缩包在制作时把真正的文件错误地封装进了这个隐藏目录里。这时你可以把这些文件复制出来再删除__MACOSX。如果里面除了一堆.DS_Store和零碎属性文件没有正经文件那就要去压缩包原本的存放目录比如“下载”文件夹里找看看是不是有个和压缩包同名的文件夹真正的文件应该在那里。4.2 为什么有些Mac压缩的zip解压后没有“__MACOSX”文件夹原因有两种制作方用了第三方压缩工具比如BetterZip、Keka这些工具默认就不写入__MACOSX。制作方刻意用zip -X或类似方式排除了元数据。所以看到没有__MACOSX的zip说明对方在压缩时留了个心眼并不代表这个包不是Mac制作的。看到有__MACOSX也不代表压缩包有问题。4.3 把__MACOSX删了压缩包里的程序还能正常运行吗能而且绝大多数情况下会把运行成功率提升。原因在于很多“绿色软件”在Windows上启动时并不会读取__MACOSX目录留着则会让杀毒软件多做一轮检测。如果程序恰好有问题那往往和__MACOSX无关而是程序本身依赖的运行库没有装齐。范例昨天我同事从网盘下载了一个Mac作者分享的“字体包”解压之后看到__MACOSX直接全删。字体全部正常安装没有任何一个损坏。4.4 解压报错提示“错误代码0x80010135”是什么情况这个错误码在Windows上解压zip时偶尔会出现通常是路径冲突或文件名非法导致的。简单说zip内部含有些在Windows下不被允许的字符比如:、?、特殊Unicode字符解压时系统拒绝创建文件。处理建议换用带“智能过滤非法字符”功能的解压软件比如Bandizip它会在解压时自动替换非法字符。或者先别管__MACOSX只解压出你需要的文件手动提取到指定目录。4.5 哪些软件最省心一个歪打正着的经验在Windows端我试过7-Zip、Bandizip、WinRAR长期用下来最省心的是Bandizip。它默认在解压时会自动跳过__MACOSX和._文件你压根儿不用再花时间清理。7-Zip则需要你在“选项→7-Zip→压缩→排除”里手动进行配置。顺便说一句如果你的使用场景比较严肃涉及版权敏感资源那就自己掂量一下该删就删、该隔离就隔离。5. 我自己的日常处理习惯最后的一点私货坚持看到这里说明你已经被这个问题烦到一定程度了或者你纯粹是个喜欢把原理搞明白的人。分享几个我个人的工作习惯多少能帮你减少踩坑概率。我个人的习惯是Windows和Mac两台机器之间传文件能不直接发原始压缩包就不发。尤其是在写教程、传素材时我会在Mac上先单独整理一个“对外发送”文件夹把最终要发的内容放进去然后用BetterZip制作zip并勾选“不包含Mac元数据”。这样做出来的压缩包任何平台解压出来都清爽干净没有一堆._开头的垃圾也不会让小白用户产生“我是不是中病毒了”的恐慌。如果是Mac往Windows传文件夹我更倾向直接把文件夹丢到共享网盘而不是打包。云盘同步不会产生__MACOSX问题因为那些隐藏属性压根儿就不在同步列表里。只有真正需要打包分发时我才会用zip而且一定带-X参数。最后再分享一个小技巧如果你已经见到一堆解压出来的._文件别慌直接在资源管理器搜索框里输入_*它会列出所有以._开头的文件手动全选删除即可。这比一个个翻目录快得多。如果你连搜都不想搜那就记住我不能保证所有安全但至少对于知名下载站和正规网盘分享出来的文件删__MACOSX这个操作本身是绝对安全的。