在 CentOS 系统中,readdir 函数是用于读取目录内容的。如果你想要使用通配符来匹配目录中的文件或子目录,你需要在调用 readdir 之前使用 shell 命令来实现。
以下是一个简单的示例,展示了如何在 CentOS 中使用 shell 命令和 readdir 函数来实现通配符匹配:
list_files.sh 的 shell 脚本,并输入以下内容:#!/bin/bash
# 检查参数数量
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <directory> <pattern>"
exit 1
fi
# 获取目录和通配符模式
directory="$1"
pattern="$2"
# 使用 shell 命令匹配文件和子目录
matched_files=$(ls "$directory"/*"$pattern"*)
# 遍历匹配到的文件和子目录
for file in $matched_files; do
# 获取相对路径
relative_path="${file#$directory/}"
echo "$relative_path"
done
chmod +x list_files.sh
/home/user/documents 目录下所有以 .txt 结尾的文件,可以运行:./list_files.sh /home/user/documents "*.txt"
这个脚本会使用 shell 命令 ls 来匹配通配符模式,然后遍历匹配到的文件和子目录,并输出它们的相对路径。注意,这个示例依赖于 shell 命令,而不是直接使用 readdir 函数。这是因为 readdir 函数本身不支持通配符。