温馨提示×

ubuntu readdir能遍历隐藏文件吗

小樊
38
2026-09-18 18:23:53
栏目: 智能运维

在 Ubuntu(Linux) 下,readdir() 可以遍历到隐藏文件,但需要你自己处理。

关键点

  • 在 Linux 中,隐藏文件只是以 . 开头的文件(如 .bashrc)
  • readdir() 不会自动跳过隐藏文件
  • 它返回 所有目录项,包括:
    • 普通文件
    • 隐藏文件(.xxx)
    • .(当前目录)
    • ..(上级目录)

示例(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
.hidden
file.txt

如果你“想忽略隐藏文件”

需要手动判断:

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

如果你“只想找隐藏文件”

if (entry->d_name[0] == '.')
    printf("%s\n", entry->d_name);

补充

  • ls 默认不显示隐藏文件,是因为 ls 自己过滤了
  • ls -a 才会显示,本质也是调用 readdir()

✅ 结论:readdir() 能遍历隐藏文件,是否处理由你决定。

如果你用的是 C / C++ / Python / shell,我也可以给你对应示例。

0 踩