想要将文件夹压缩给别人,别人打开一看里面有 .Ds_Store 文件,这有点不好。
那么如何在 mac 压缩文件夹时去掉 .Ds_Store 文件呢?
使用 zip 命令压缩
使用快捷指令运行 Shell 脚本,在文件夹右键菜单中添加快捷指令操作,这样在右键文件夹时就能点击菜单进行压缩。
打开快捷指令,添加一个快捷指令
在右边搜索 shell ,将运行 Shell 脚本拖拽到左边,输入 Sell 脚本:
for f in "$@"
do
# 获取文件夹名称
folderName=$(basename "$f")
# 获取父目录路径
parentDir=$(dirname "$f")
# 显示通知 - 开始压缩
osascript -e "display notification \"正在压缩 $folderName...\" with title \"文件夹压缩\""
# 切换到父目录
cd "$parentDir"
# 使用zip压缩,排除.DS_Store文件
zip -r "${folderName}.zip" "$folderName" -x "*.DS_Store"
# 检查压缩是否成功
if [ $? -eq 0 ]; then
# 显示成功通知
osascript -e "display notification \"已创建: ${folderName}.zip\" with title \"压缩成功\""
else
# 显示错误通知
osascript -e "display notification \"压缩失败,请重试\" with title \"错误\""
fi
done
这个脚本中使用了 zip 命令进行压缩,使用 -x 命令排除指定名称文件
点击右边的感叹号图标,勾选作为快速操作使用和访达。
在运行 Shell 脚本中的下方,输入选择输入快捷指令的信息,传入输入内容选择作为参数。
在顶部你可以命名这个快捷指令,例如:压缩
然后你就能在右键菜单中运行快捷指令进行压缩了
这种方式有一个缺点,兼容性不够好。
将压缩文件在 windows 用系统自带的解压功能进行解压,是不能解压文件名包含中文的文件的,或者是提示压缩包错误,不能解压,使用第三方解压工具就能解压。这可能是由于编码格式的问题,windows 不使用 utf-8。我换成其它压缩命令进行压缩也没有解决。
使用第三方软件进行压缩
使用第三方软件压缩就能解决兼容问题了。
我使用的是 CleanArchiver ,将要压缩的文件拖拽到软件就能压缩了,勾选 Exclude .Ds_Store 就能排除掉 .Ds_Store 文件。
这是 github 地址,你可以在里面下载软件:Releases · anyakichi/CleanArchiver
或者可以到这个页面下载软件:Download CleanArchiver for Mac | MacUpdate
最佳方案-使用快捷指令将文件通过应用压缩
这种方案既方便又能提供很好的兼容性。在上面的方案中使用 CleanArchiver 应用压缩,每次都要将文件拖动到 CleanArchiver 应用内,不太方便,可以使用快捷指令运行 shell 命令,让文件通过 CleanArchiver 打开,然后将该快捷指令添加到文件夹菜单。
按照上面的“使用 zip 命令压缩”方案创建快捷指令,shell 命令如下:
for f in "$@"
do
# 检查文件是否存在
if [ -e "$f" ]; then
# 使用 CleanArchiver 打开文件
open -a "CleanArchiver" "$f"
# 可选:显示通知
osascript -e "display notification \"正在用 CleanArchiver 打开: $(basename \"$f\")\" with title \"文件处理\""
else
osascript -e "display notification \"文件不存在或无法访问\" with title \"错误\""
fi
done
点击该快捷指令菜单就能让当前文件通过 CleanArchiver 压缩了 👏 。