# 快速批量删除 Microsoft Word ~$ 文件

> 本文公开全文。

原文：https://utgd.net/article/20592

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

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

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

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

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

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

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

## 养成顺手清理的好习惯

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

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

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

---

[前往标准阅读页](https://utgd.net/article/20592?audience=web)
