匹配文件列表命令 ls 中的许多模式?

匹配文件列表命令 ls 中的许多模式?

我的目录中有很多文件。我想列出、复制或移动名称中包含“abc”和“xyz”的文件。如何使用 AND 进行模式匹配?

普通命令:ls *abc* *xyz*仅与 OR 一起使用。

答案1

用这个方法。

ls *abc*xyz* *xyz*abc*

使用 inmvcp,您只需要使用选项指定目标目录,-t因为您正在使用通配符查找文件,并且可以不仅仅是要复制/移动的文件:

cp -t /path/to/dest *abc*xyz* *xyz*abc*

或者使用find类似:

find \( -name '*abc*' -a -name '*xyz*' \)

find -name '*abc*' -name '*xyz*'与中记录的相同man find:

表达式1 表达式2
一行中的两个表达式被视为用隐含的“and”连接;表达式2不评估如果表达式1是假的。

表达式1-A表达式2
与...一样表达式1 表达式2

表达式1-和表达式2
与...一样表达式1 表达式2,但不符合 POSIX 标准。

您可以添加-exec ...到上面的命令中,以对找到的文件执行任何您想要执行的操作。

find \( -name '*abc*' -a -name '*xyz*' \) -exec do-stuffs {} +

相关内容