将 find 命令中的选项从一个字母组合到另一个字母

将 find 命令中的选项从一个字母组合到另一个字母

查找其中所有以 letter 开头的/etc文件到以 letter 开头的文件,即/etc.config 中从 a 到 的所有文件。.configakk

答案1

这些文件名将与文件名通配模式匹配(“以 到 的[a-k]*.config任何字母开头,以文件名后缀结尾”)。ak.config

如果您只对位于 中的文件感兴趣/etc,则以下命令将列出这些文件:

printf '%s\n' /etc/[a-k]*.config

该命令还将列出与模式匹配的目录和符号链接(等)。将列表限制为仅常规的文件(以及常规文件的符号链接),然后使用循环:

for pathname in /etc/[a-k]*.config; do
    [ ! -f "$pathname" ] && continue
    printf '%s\n' "$pathname"
done

如果您有兴趣查看子目录/etc并将搜索限制为仅包含常规文件,请使用find

find /etc -type f -name '[a-k]*.config'

这将在其中和下面查找文件名与给定模式匹配的/etc常规文件 ( )。-type f


上述命令的结果将是一个以换行符分隔的文件路径名列表。如果您计划对文件进行进一步处理,则此列表可能不应该用作路径名的中间列表。相反,使用上面的循环来单独处理文件,或者使用find-exec选项来处理它们。这是因为输出中使用的分隔符换行符也是 Unix 文件名中的有效字符(当然,您很少看到它被使用,但仍然如此)。

相关内容