列出包含但不以特定字符序列开头或结尾的文件名

列出包含但不以特定字符序列开头或结尾的文件名

我想列出包含“2022”的所有文件名,但排除以其开头或结尾的文件名。什么命令适用于这个?

答案1

这个find命令会做到这一点:

find . -name '*2022*' ! \( -name '2022*' -o -name '*2022' \)

它将首先匹配包含任意位置的文件2022,然后继续不匹配包含2022在开头或结尾的文件。

在我使用它的环境中,所有的都*必须用单引号或\.

您还可以使用此命令单独声明每个条件,但我发现第一个更方便:

find . -name '*2022*' ! -name '2022*' ! -name '*2022'

请记住,这将下降到目录的整个深度。将其限制为 cwd:

find . -maxdepth 1 -name '*2022*' ! \( -name '2022*' -o -name '*2022' \)

相关内容