在 CentOS 中,你可以使用 readdir 函数来过滤文件
首先,确保你已经安装了必要的开发工具和库。在 CentOS 上,你可以使用以下命令安装它们:
sudo yum groupinstall "Development Tools"
sudo yum install glibc-devel
接下来,创建一个名为 filter_files.c 的文件,并将以下代码粘贴到其中:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
int main(int argc, char *argv[]) {
DIR *dir;
struct dirent *entry;
if (argc != 2) {
fprintf(stderr, "Usage: %s <directory>\n", argv[0]);
return EXIT_FAILURE;
}
dir = opendir(argv[1]);
if (dir == NULL) {
perror("opendir");
return EXIT_FAILURE;
}
while ((entry = readdir(dir)) != NULL) {
// 在这里添加你的过滤条件
if (strstr(entry->d_name, "filter_keyword")) {
printf("%s\n", entry->d_name);
}
}
closedir(dir);
return EXIT_SUCCESS;
}
在这个示例中,我们使用 strstr 函数来检查文件名是否包含名为 filter_keyword 的子字符串。你可以根据需要修改这个条件。
保存文件后,使用以下命令编译代码:
gcc filter_files.c -o filter_files
现在,你可以使用这个程序来过滤目录中的文件。例如,要过滤名为 /home/user/documents 的目录中的文件,请运行:
./filter_files /home/user/documents
这将输出包含 filter_keyword 的所有文件名。