本文的需求来自:macOS 访问位于 OpenWrt 的磁盘路径之后,若是打开过文件,会生成缓存文件,以点开头,类似于 .DS_Store._.DS_Store 还有众多使用 . 开头的隐藏文件(文件名称中带有文件名自身)。

我们都知道,使用 rm -rf ./* 或者 rm -rf * 是无法删除当前目录下的隐藏文件的。该如何删除隐藏文件(start with .)呢?

请继续往下看——

$ rm -rf .*

这样可行,但是会提示你 ... 无法删除,也就是当前目录和上一级目录无法删除,显然这不是一个优雅的方案。

最好的方法是利用正则表达式,如下

$ rm -rf .[!.]*
  • 第一个点代表这个文件以 . 开头
  • [!.] 代表第二个字符不能是 .
  • * 代表任意字符(可以不存在,数量是 0 个或 N 个)

这样就完美实现目标。