Linux 删除当前目录下的隐藏文件
本文的需求来自:macOS 访问位于 OpenWrt 的磁盘路径之后,若是打开过文件,会生成缓存文件,以点开头,类似于
.DS_Store
和._.DS_Store
还有众多使用 . 开头的隐藏文件(文件名称中带有文件名自身)。
我们都知道,使用 rm -rf ./*
或者 rm -rf *
是无法删除当前目录下的隐藏文件的。该如何删除隐藏文件(start with .
)呢?
请继续往下看——
$ rm -rf .*
这样可行,但是会提示你 .
和 ..
无法删除,也就是当前目录和上一级目录无法删除,显然这不是一个优雅的方案。
最好的方法是利用正则表达式,如下
$ rm -rf .[!.]*
- 第一个点代表这个文件以
.
开头 [!.]
代表第二个字符不能是.
*
代表任意字符(可以不存在,数量是 0 个或 N 个)
这样就完美实现目标。