在 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 操作系统创建的隐藏文件,用于存储文件夹的自定义属性,例如图标的位置或背景图像的选择。”