温馨提示×

ubuntu copendir能读隐藏文件吗

小樊
38
2026-09-02 14:38:05
栏目: 智能运维

在 Ubuntu(Linux)下,opendir 本身只是打开一个目录,并不能直接“读取”文件内容,也不能直接判断是否是隐藏文件。

结论先说

  • ✅ opendir + readdir 可以列出隐藏文件
  • ✅ 隐藏文件在 Linux 里只是“以 . 开头的文件”
  • ❌ opendir 不会自动过滤隐藏文件,也不会专门“读隐藏文件”

原理说明

在 Linux 中:

  • 隐藏文件 = 文件名以 . 开头(如 .bashrc)
  • opendir 打开目录
  • readdir 读取目录项(包括隐藏文件)

示例:

#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;
}

这段代码 会列出 . .. 以及所有隐藏文件。


如果你“只想读非隐藏文件”

需要自己过滤:

if (entry->d_name[0] == '.')
    continue; // 跳过隐藏文件

常见误解

  • ❌ “隐藏文件 opendir 读不到” → 错误
  • ❌ “隐藏文件需要特殊权限” → 错误(只要目录有权限即可)
  • ✅ ls 默认不显示隐藏文件,是因为 ls 自己过滤了

总结

问题 答案
opendir 能读隐藏文件吗 能(配合 readdir)
是否自动排除隐藏文件 否
隐藏文件本质 以 . 开头的文件名

如果你是在写 C / C++ / shell / Python 程序,我也可以给你对应示例。

0 踩