Answers:
没有。
该cp命令不具备将其任何参数作为正则表达式进行处理的功能。即使通配符也不能由它(或大多数可执行文件)处理;而是由外壳处理。
cp test/* test2/实际上是由bash扩展的,cp其参数的真正含义是cp test/file1 test/file2 test/file3 test2/(或根据的实际内容而适当的选择test/)。
另外,我认为您的表达式[^\.php]不会匹配您想要的表达式(它不仅匹配包含的文件.php)。
您可能想研究该find实用程序,以根据正则表达式过滤出文件列表,然后xargs用于将返回的文件列表应用于cp命令(假定find没有用于复制文件的内置处理程序;我想我对工具不太熟悉)。
您可以尝试:
find . ! -iregex ".*\.php.*" -exec cp {} /destination/folder/ \;
这表示要在当前目录中递归搜索路径中不包含“ .php”的文件,然后将其复制到中/destination/folder/。
根据要求,对参数进行了更具体的细分:
. -开始搜索的位置-在这种情况下为当前目录  ! -“ Not”运算符,将下一个测试的结果取反  -iregex-不区分大小写的正则表达式测试。下一个参数是表达式。  ".*\.php.*"-正则表达式匹配<Anything>.php<Anything>-路径中某处具有“ .php”的任何文件。(请注意,包括在名称中包含“ .php”的文件夹内,您需要一个更复杂的表达式以仅匹配文件)-exec-如果前面的测试返回true,则执行命令。下一个参数是命令,所有剩余的参数;传递到命令。该{}是代表文件名的特殊参数。cp -find`命令应在每个匹配的路径名上运行。{}-找到的文件的路径,cp作为参数传递给它,以便它知道要复制的文件/destination/folder/-参数传递给cp,告诉cp它应将文件复制到何处。\;-这是寻找的;终结者-exec。我们使用a对其进行转义,\以便您的shell不会尝试解析它,而是将其作为命令(find)的参数提供编写与“不包含”的字符串匹配的正则表达式是相当困难的.php,因此我们改为告诉find搜索确实包含的字符串,.php然后使用反转结果!。
cp其他二进制文件无法扩展正则表达式。您介意在给出的示例示例中详细说明每个选项和参数的含义吗?我知道,.指的是当前目录,但什么!,{},\;,等指,以及他们是什么意思?例如,为什么您必须逃脱;?
                    find . -name '[^\.txt]' -exec rm {} \;因此,我的命令是我不愿使用find。我可能是一个错误,但不确定我做错了什么。据我了解{},该命令所找到的每个文件find . -name '[^\.txt]'
                    您可以从控制台使用其他一些工具,例如grep和xargs。
ls -1 some_folder | egrep 'some_extended_regex' | xargs cp -t destination_folder
{}给不同-t?
                    您可以运行以下易于使用的命令:
find /home/usr/search_dir -iname *file_name_portion*.txt | xargs cp -t /home/usr/destination_folder
哈哈!
find . -name [^\.php] -exec cp {} /path/to/location \;注意带有特殊字符的文件。