article_image

我从事法律工作一段时间后,眼光开始变毒,收到别人的文件时,渐渐染上了给人挑毛病的坏毛病。最近强迫症又有了新的发展:开始留意压缩包和文件夹中有没有~$文件。

Alt text
Word 会自动创建大量~$文件

~$ 开头的文件,通常是 Microsoft Word 备份之用,默认是隐藏的,自己用着眼不见为净,倒也相安无事。但打包进压缩文件或空投整个文件夹给别人时,这些文件的小尾巴也会跟过去,轻则引发误会——被不精通电脑的搭档问“怎么打不开呀”,重则泄漏个人信息、隐私、甚至商业秘密——敏感文件本身被删除,~$文件也不会自动消失1

批量删除文件夹中所有的~$文件

删除单个~$文件不难,举手之劳而已;删除所有~$文件则太费劲,尤其是层层嵌套的文件夹,仅仅是把这些文件找出来,可能就会劝退一大批人。此时最好让自动化工具代劳,而不是凭借人力。2我选了一段 Shell 脚本,以便嵌入各种自动化工具中,下图是直接运行命令的效果:遍历一个文件夹中的各个角落,并删除其中的~$文件。

find . -type f -name '~$*' -delete

Alt text
批量删除文件夹及子文件夹中的所有~$文件

上述脚本中的 . 代表当前文件夹,将其修改为各个自动化工具所能接受的输入参数,就可以使 制作各种版本。例如在 LaunchBar 中,可以使用下列脚本;使用时,选定一个或多个需要清理的文件夹,再运行自动化动作即可。

for f in "$@";do
    find "$f" -type f -name '~$*' -delete    
done

养成顺手清理的好习惯

清理~$文件,背后并没有太复杂的技术,我甚至看到一些认真严苛的职场前辈,会手动删掉这类多余文件。与其说是技术问题,不如说是习惯问题,而更方便的批量删除工具,则是为了帮助养成习惯。

除了横行于各大操作系统的~$文件,还有一些常见垃圾文件,比如写代码或建模时偶尔冒出来的 bak 文件3,以及 macOS 上的“官方流氓” DS_Store 文件。对于后者,我曾编写过 LaunchBar 版Alfred 版Automator 版的自动化动作,可供使用。

严格来说,这些工具只是“半自动”,而非毫不费心的全自动,但正如唐·诺曼所言,自动化的意义不在于完全消灭任务,而是重新分配注意力;套在本文的语境中,就是不用时时刻刻想着如何处理各类垃圾文件,只需最后集中处置一次。


  1. 在技术上,从~$文件中是读不出什么东西的,但一个以敏感文件或无关文件为名的垃圾,其存在本身就不合法。
  2. 智能文件夹也不十分可靠,如果电脑里文件过多,有可能会漏掉其中一些——如果确实遇到这种情况,请考虑重建 Spotlight 索引。
  3. 要看使用何种软件,以及具体设置,除了删除,一般也可以禁止生成,或者放诸指定文件夹、隔离混乱。