如何在 Mac 上压缩文件时不包含 .DS_Store 和 __MACOSX?
Contents
前言
在 Mac 使用 finder 进行压缩,别人解压一看怎么有 .DS_Store 、 __MACOSX 这些垃圾文件,有些杀毒软件还会报病毒,这怎么说理去。
其实 .DS_Store 是 Mac 用来记录文件夹图标的位置、窗口、排序偏好的。
而 __MACOSX 是备份用的,这些给其它操作系统都是没用的。
所以我们在压缩的时候需要把这些文件给排除掉,我试了下有两种方法可以做的
方法一
使用 zip ,把这些不需要的文件过滤掉
|
|
- -r:意思是“递归”,也就是连文件夹里的子文件夹、子文件一起打包,不然包含压顶层文件。
- xxx.zip 输出的压缩包名字
- xxx 要压缩的文件夹
- -x:表示“排除”,后面跟的文件或目录都不会被打进压缩包。
"*/.DS_Store":匹配所有层级下的.DS_Store文件,(*表示任意路径)"__MACOSX/*":排除整个__MACOSX文件夹及其内容。
方法二
使用 ditto ,这个命令是系统自带的,所以不需要安装。
|
|
- -c:表示“创建归档”(create archive)。
- -k:指定输出格式为 zip(不然默认是另一种 Mac 专用格式,别人打不开)。
- –keepParent:保留最外层的文件夹结构。比如你压缩的是 project/,解压后还是有个 project 文件夹;如果不加这个,里面的内容会直接“散”出来。
- xxx 要压缩的源文件夹
- xxx.zip 输出的压缩包名字
这个命令的好处是:不用手动排除任何东西, .DS_Store 和 __MACOSX 默认就不会被打包进去,省心又干净。