Linux查看隐藏文件的核心是:所有以.开头的条目默认不显示,图形界面按Ctrl+H最便捷,命令行用ls -a可显示全部(含.和..),ls -d .排除.和..,find . -maxdepth 1 -name "."更精准。

Linux里查看隐藏文件和文件夹,核心就一条:所有以.开头的条目默认不显示,必须显式要求才能看到。图形界面按Ctrl + H最省事;命令行用ls -a是底线操作,但要注意它会连.和..一起列出来——这俩不是“隐藏文件”,只是路径符号。
图形界面下按Ctrl + H就能开关显示
GNOME(如Ubuntu)、KDE(如Kubuntu)、XFCE(如Xubuntu)和Deepin的文件管理器都支持这个快捷键。按下后,隐藏项会以半透明或灰色图标呈现,和普通文件区分开。不用进设置、不用重启窗口,实时生效。如果快捷键失效,说明当前文件管理器不响应全局热键(比如某些远程桌面场景),这时走菜单:视图 → 显示隐藏文件。Deepin用户还能在文件管理器设置里永久勾选“显示隐藏文件”,但不推荐——日常使用中太多.cache、.local会干扰视觉。
ls -a是最基础也最容易踩坑的命令
终端里输入ls -a能列出当前目录下所有条目,包括.、..和真正的隐藏文件(如.bashrc、.ssh)。但问题在于:.和..不是文件,只是路径占位符,它们永远存在,且每次都会被ls -a带出来。如果你只想确认“有没有人建了.config这种东西”,就得手动过滤掉这两行。更糟的是,有些新手误以为ls -a输出里没别的点文件,就断定“没有隐藏项”,其实只是被.和..淹没了。
- 想看权限和大小等细节?用
ls -la,别写成ls -al——顺序无关,但-la是约定俗成的写法,一眼可读 - 想排除
.和..只看真·隐藏项?用ls -d .*,它只匹配以.开头的名称,天然跳过.和.. - 如果
ls -d .*报错ls: cannot access '.*': No such file or directory,说明当前目录确实没有除./..外的隐藏项
查磁盘占用时,du必须配合-a或通配符
排查空间告警时,最大的盲区就是/root/.cache、/home/user/.local/share/Trash这类隐藏目录。普通du -sh *完全看不到它们,因为*不匹配点开头的名称。正确做法是:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 查当前目录下所有隐藏项大小:
du -sh .*(注意空格,.*是shell通配符,不是正则) - 递归查所有隐藏目录(含子目录):
find . -maxdepth 1 -name ".*" -type d -exec du -sh {} \; - 如果权限不足(比如查
/root),必须切root身份运行,否则du会跳过不可读目录,结果严重偏低
别指望du -a自动包含隐藏项——它只表示“显示所有文件”,但前提是这些文件得先被du扫描到;而du默认扫描范围由你给的路径决定,du -a .仍会漏掉.本身代表的隐藏内容,除非你明确写出.*。
用find精准定位特定隐藏文件
当你知道名字片段(比如找.gitignore)或类型(只要隐藏目录不要文件),find比ls更可靠。它不依赖shell展开,也不受当前目录内容影响。
- 只找当前目录一级的隐藏文件:
find . -maxdepth 1 -name ".*" -type f - 只找隐藏目录:
find . -maxdepth 1 -name ".*" -type d - 想找
.env但不确定在哪层目录?去掉-maxdepth 1,直接find /path -name ".env"
注意:find . -name ".*"默认会匹配./.和./..,虽然不影响结果,但输出冗余。加-mindepth 1可跳过第一层的.和..,更干净。
真正容易被忽略的不是命令怎么写,而是“哪些点目录该定期清理”——.cache、.local/share/Trash、.npm/_cacache这些地方常年静默膨胀,等df报警才去翻,往往已经丢了几天日志或备份窗口。查的时候别只盯着家目录,/var/cache和/var/log/journal里也有不少带点的子目录。

















