在 Mac 上压缩文件夹,无需 .DS_Store

在 Mac 上压缩文件夹,无需 .DS_Store

在 Mac 上压缩文件夹时,有没有什么方法可以摆脱 .DS_Store?

我在 Mac 上工作,并以 zip 格式将工作发送给客户,但总是被问及里面的 .DS_Store 文件夹。除非我在 Windows 上打开该文件夹,然后删除 .DS_Store 并在那里压缩,否则这似乎是不可避免的。这相当麻烦。

有没有什么简单的解决方法?

答案1

如果您不介意跳转到终端,那么这非常简单。如果您在 中/Users/username,即您的 $HOME 目录,并且有一个名为 foo 的子目录,您想压缩它但忽略所有 .DS_Store 文件,请执行以下操作:

zip -r foo.zip foo -x "*.DS_Store"

为了解释这一点,我们使用以下参数/参数运行 zip 可执行文件:

  • -r以递归方式包含我们想要压缩的目标下的所有目录。
  • foo.zip是我们正在创建的 zip 档案的名称
  • foo是我们要压缩的目标目录
  • -x "*.DS_Store"排除路径以字符串“.DS_Store”结尾的所有文件

不需要任何第三方应用程序,也不需要丢弃 .DS_Store 文件 - 只需依靠 OSX / Darwin 内置的所有 unix 工具优点。

答案2

您可以创建一个自动化应用程序,它接受一个文件夹作为输入,并生成一个包含该文件夹内容的 zip 文件,没有任何杂乱。

将此应用程序存储在 /Users/you/Applications 中,然后将其拖到 Finder 工具栏中。然后您可以从任何 Finder 窗口将文件夹拖到应用程序上。

创建自动化应用程序

添加 '获取选定的查找器项目' 步骤。同时添加一个 '运行 shell 脚本' 与 ' 同步传递输入' 选项设置为 '作为参数“”。

添加工作流步骤

剧本:

name=("$@")
cd "$name"
zipFileName=`basename "$name"`
zip "${zipFileName}.zip" -r ./* \
    -x */.DS_Store \
    -x */.git \
    -x */.svn \
    -x */.idea \
    -X */__MACOSX
mv "${zipFileName}.zip" ../

接受一个文件夹作为输入并生成一个带有该文件夹名称的 zip 文件。

答案3

如果你已经创建了 zip 存档(或者想要一种在创建 zip 后删除 .DS_Store 的简单方法),这将删除 zip 存档中任何路径下的所有 .DS_Store 文件:

zip -d archive.zip "*/*.DS_Store"

whaley 的回答仍然是最好的,因为它可以别名化并被遗忘。就我而言,我从存档实用程序创建了 zip,然后意识到我应该删除它们。

答案4

打开终端(/Applications/Utilies/Terminal.app)并运行以下命令来显示隐藏文件:

defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder

要隐藏隐藏文件,只需运行:

defaults write com.apple.finder AppleShowAllFiles FALSE && killall Finder

您可以像删除任何其他文件一样删除 .DS_Store 文件,而不会对您的目录造成任何损害。如维基百科所述,“DS_Store(桌面服务存储)是由 Apple Inc. 的 Mac OS X 操作系统创建的隐藏文件,用于存储文件夹的自定义属性,例如图标的位置或背景图像的选择。”

相关内容