Answers:
如果您不介意跳到终端,那就太简单了。如果您位于中/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工具。
zip -r foo.zip foo -x *.DS_Store -x *.svn*
-x 'Icon?'
。“?” 文件遍历模式中的字符表示“匹配单个通配符”,因此无论“?”是什么,它都将匹配。真的是。您可以通过附加更多-x参数来排除任何类型的临时文件。 zip
非常灵活。您认为这些第三方工具在幕后真正使用了什么?
您可以创建一个自动应用程序,该应用程序接受一个文件夹作为输入并生成文件夹内容的zip文件,而不会产生任何混乱。
将此应用程序存储在/ Users / you / Applications中,然后将其拖到Finder工具栏中。然后,您可以从任何查找器窗口将文件夹拖到应用程序上。
添加“ 获取选定的查找器项目 ”步骤。并且还添加一个“ 运行外壳脚本 ”步骤,并将“ 传递输入 ”选项设置为“ 作为参数 ”。
剧本:
name=("$@")
cd "$name"
zipFileName=`basename "$name"`
zip "${zipFileName}.zip" -r ./* \
-x */.DS_Store \
-x */.git \
-x */.svn \
-x */.idea \
-X */__MACOSX
mv "${zipFileName}.zip" ../
接受一个文件夹作为输入,并生成一个带有该文件夹名称的zipfile。
我认为默认情况下没有方法可以实现,但是我可以想到两种方法来实现所需的目标。
首先,我找到了一个名为FolderWasher的免费应用。将文件夹拖放到应用程序上,它将删除.DS_Store文件并为您压缩。
或者,(可能比第三方软件更好),您可以在创建后使用Automator清理存档。实际上已经为此创建了一个动作。这仅是一个额外的步骤,您可以将动作拖动到Finder,以便轻松查找。
打开终端(/Applications/Utilies/Terminal.app)并运行以下命令以显示隐藏文件:
defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder
要隐藏隐藏的文件,只需运行:
defaults write com.apple.finder AppleShowAllFiles FALSE && killall Finder
您可以像删除其他文件一样删除.DS_Store文件,而不会损坏目录。如Wikipedia所述,“ DS_Store(桌面服务商店)是由Apple Inc.的Mac OS X操作系统创建的隐藏文件,用于存储文件夹的自定义属性,例如图标的位置或背景图片的选择。”
使用CleanArchiver创建这些存档。这样,您就无需破坏文件夹的首选项。