DEV Community

Cui Mingda
Cui Mingda

Posted on

How to list all hidden files and directories with ls

在Linux中,隐藏文件就是以.开头的文件,所以列出所有的隐藏文件,其实就是列出所有以.开头的文件。

ls .?*
Enter fullscreen mode Exit fullscreen mode

上面这个方案有个问题,就是将目录里的内容也递归列出来了,这不是我们的诉求,增加-d参数,把目录当作文件展示出来

ls -d .?*
Enter fullscreen mode Exit fullscreen mode

如果希望通过列表形式展示,还可以增加-l参数

ls -ld .?*
Enter fullscreen mode Exit fullscreen mode

进一步,如果我们只想列出所有的隐藏目录呢,不显示隐藏文件,可以增加/,所有的目录都有这个。

ls -ld .?*/
Enter fullscreen mode Exit fullscreen mode

其实上面这个情况,我们可以增加-p参数会更明显,一个-p就代表如果是目录就在后面多增加一个/显示出来。

ls -ldp .?*/
Enter fullscreen mode Exit fullscreen mode

换另外一个情况,如果我们只想显示隐藏文件,不想显示隐藏目录要怎么办呢?其实顺着上一个方案就好了,既然可以识别所有的目录,当然可以排除所有的目录

ls -ldp .?* | grep -v /
Enter fullscreen mode Exit fullscreen mode

当然这个议题我们可以不局限在使用ls命令,还可以使用find命令,比如列出当前目录的所有隐藏文件,不包含目录

find .?* -maxdepth 0 -type f
Enter fullscreen mode Exit fullscreen mode

列出所有的隐藏目录,不包含文件,命令很清晰,唯一的遗憾就是不带颜色显示

find .?* -maxdepth 0 -type d
Enter fullscreen mode Exit fullscreen mode

Top comments (0)