温馨提示×

linux readdir能读隐藏吗

小樊
36
2026-10-11 12:44:05
栏目: 智能运维

在 Linux 下,readdir() 是可以读取到隐藏文件的。

说明

  • Linux 中的“隐藏文件”只是文件名以 . 开头(如 .bashrc、.config)
  • 从文件系统角度看,它们和普通文件没有区别
  • readdir() / readdir64() 会返回目录下的所有条目,包括:
    • 普通文件
    • 目录
    • 隐藏文件(. 开头的)
    • . 和 ..

示例(C)

#include <dirent.h>
#include <stdio.h>

int main() {
    DIR *dir = opendir(".");
    struct dirent *entry;

    while ((entry = readdir(dir)) != NULL) {
        printf("%s\n", entry->d_name);
    }

    closedir(dir);
    return 0;
}

运行后会看到 .bashrc、.、 .. 等。

常见误解

  • ls 默认不显示隐藏文件,是因为 ls 自己过滤了
  • ls -a 才显示所有(包括隐藏)

如果你“不想”读隐藏文件

需要自己在代码里过滤:

if (entry->d_name[0] == '.') continue;

总结

✅ readdir() 能读隐藏文件
❌ 它不是“看不到”,而是 ls 等工具默认隐藏

如果你是想问 Python / shell / 特定语言 的 readdir 行为,也可以告诉我。

0 踩