在 Debian(或其他 Linux 系统)里,“隐藏文件”通常指 以 . 开头的文件/目录(如 .bashrc、.config)。
下面按常见使用场景说明如何 过滤(排除)隐藏文件。
readdir() 过滤隐藏文件readdir() 返回 struct dirent,里面包含 d_name。
#include <stdio.h>
#include <dirent.h>
#include <string.h>
int main() {
DIR *dir = opendir(".");
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
// 过滤隐藏文件
if (entry->d_name[0] == '.')
continue;
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
✅ 这样会跳过 . 和 .. 以及所有 .xxx 文件
ls
ls -A | grep -v '^\.'
或:
for f in *; do
[ -e "$f" ] && echo "$f"
done
find . -maxdepth 1 -name '[^.]*'
或:
find . -maxdepth 1 ! -name '.*'
os.listdir 过滤import os
for name in os.listdir('.'):
if not name.startswith('.'):
print(name)
. 和 .. 也是“隐藏”的(以 . 开头).DS_Store,但规则仍是 . 开头)stat() 判断权限如果你能说明:
我可以给你更精确的示例。