mac下压缩文件 传到服务器上 解压缩,会产生很多多余文件 大多以“._”开头的文件,如何不把这些文件压缩进去呢?
这个问题是由于 macOS 系统在处理文件时,会自动生成一些以 ._ 开头的隐藏文件(通常称为 AppleDouble 文件),用于存储扩展属性和元数据。当你在其他系统(如 Linux 服务器)上解压时,这些文件就会显现出来,造成困扰。
有几种方法可以在压缩时避免将这些多余文件打包进去,你可以根据自己的习惯选择。
💻 方法一:使用终端命令(无需安装新软件)
这是最直接的方法,通过命令行在压缩时排除这些文件。
使用 zip 命令
zip 命令的 -X 参数可以排除 macOS 的扩展属性,同时配合 -x 参数排除 __MACOSX 文件夹。
-r: 递归压缩目录
-X: 排除扩展属性
-x: 排除指定的文件模式
zip -r -X your_archive.zip your_folder_name -x .DS_Store" -x “__MACOSX/”
your_archive.zip: 你想要生成的压缩包名称。
your_folder_name: 你想要压缩的文件夹名称。
使用 tar 命令
在创建 tar 包时,可以通过设置环境变量 COPYFILE_DISABLE=1 来禁用对 macOS 特有文件的打包。
-c: 创建归档
-z: 使用 gzip 压缩
-v: 显示过程
-f: 指定归档文件名
COPYFILE_DISABLE=1 tar -czvf your_archive.tar.gz your_folder_name
🛠️ 方法二:使用第三方压缩软件(图形界面)
如果你觉得命令行不方便,很多第三方压缩软件提供了更友好的图形界面来自动处理这个问题。
Keka (免费/付费):一款非常流行的 macOS 压缩工具。在压缩时,勾选 “排除 Mac 资源文件” 选项,它就会自动过滤掉 ._ 文件和 .DS_Store 文件。
BetterZip (付费):功能强大的压缩软件。在保存压缩包时,可以选择 “为 PC 保存” 预设,或者在选项中勾选 “从压缩文件中移除特殊 Mac 文件”,即可实现同样的效果。
🧹 方法三:事后清理(如果文件已在服务器上)
如果文件已经上传到服务器,你也可以在服务器上直接删除这些多余的文件。
在服务器的终端中,进入你的项目目录,然后执行以下命令:
查找并删除当前目录及子目录下所有以 “." 开头的文件
find . -name ".*” -type f -delete
警告:此命令会直接删除文件,执行前请确保你不在重要的系统目录下,或者先用 find . -name “._*” -type f (不带 -delete)预览一下将要删除的文件。