我想列出包含“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' \)