温馨提示×

debian copendir能读取隐藏文件吗

小樊
42
2026-10-01 02:45:00
栏目: 智能运维

在 Debian(以及一般的 Linux/UNIX 系统)里,opendir + readdir 是可以读取到隐藏文件的。

关键点如下:

1. opendir / readdir 本身不区分隐藏文件

  • opendir() 打开目录
  • readdir() 会返回目录下的所有条目,包括:
    • 普通文件
    • 子目录
    • 隐藏文件(以 . 开头的文件,如 .bashrc)
    • . 和 ..

也就是说,隐藏文件对 readdir 是可见的。

2. “隐藏”只是 shell 层面的约定

  • 在 Linux 中,所谓“隐藏文件”只是:
    • 文件名以 . 开头
    • ls 默认不显示(需要用 ls -a)
  • 内核和 opendir/readdir 并不隐藏它们

3. 示例代码(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、.、. 等。

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

需要自己在代码里过滤:

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

总结

✅ Debian 下 opendir 能读取隐藏文件
❌ “隐藏”不是权限或系统级隐藏,只是命名习惯

如果你是在写程序、做目录遍历、或关心权限/性能问题,也可以继续问。

0 踩