温馨提示×

CentOS readdir如何支持通配符

小樊
45
2025-11-05 22:52:33
栏目: 智能运维

在 CentOS 系统中,readdir 函数是用于读取目录内容的。如果你想要使用通配符来匹配目录中的文件或子目录,你需要在调用 readdir 之前使用 shell 命令来实现。

以下是一个简单的示例,展示了如何在 CentOS 中使用 shell 命令和 readdir 函数来实现通配符匹配:

  1. 首先,创建一个名为 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
  1. 为脚本添加可执行权限:
chmod +x list_files.sh
  1. 运行脚本,传入要搜索的目录和通配符模式。例如,要列出 /home/user/documents 目录下所有以 .txt 结尾的文件,可以运行:
./list_files.sh /home/user/documents "*.txt"

这个脚本会使用 shell 命令 ls 来匹配通配符模式,然后遍历匹配到的文件和子目录,并输出它们的相对路径。注意,这个示例依赖于 shell 命令,而不是直接使用 readdir 函数。这是因为 readdir 函数本身不支持通配符。

0