Shell 找到一个文件并将其复制到一个文件夹

Shell 找到一个文件并将其复制到一个文件夹,shell,file,grep,find,zip,Shell,File,Grep,Find,Zip,我正在编写一个脚本,打算根据给定的文件路径作为输入,将一个文件复制到另一个目录。问题是,它复制了整个文件夹,但我试图复制的文件。我尝试了不同的选项和命令,但结果是一样的。我会感谢你的帮助 我试图复制的文件是“12345.xml” 我的代码 首先,脚本在zip文件夹名称上查找字符串“may2017”。显示与模式匹配的压缩文件夹名称列表,然后在每个文件夹列表上查找文件“12345”,因此最终结果将只有一个匹配的压缩文件夹。然后,所需的结果将是复制xml文件 find”/path/SourceFold

我正在编写一个脚本,打算根据给定的文件路径作为输入,将一个文件复制到另一个目录。问题是,它复制了整个文件夹,但我试图复制的文件。我尝试了不同的选项和命令,但结果是一样的。我会感谢你的帮助

我试图复制的文件是“
12345.xml

我的代码

首先,脚本在zip文件夹名称上查找字符串
“may2017”
。显示与模式匹配的压缩文件夹名称列表,然后在每个文件夹列表上查找文件
“12345”
,因此最终结果将只有一个匹配的压缩文件夹。然后,所需的结果将是复制xml文件

find”/path/SourceFolder“-name”*may2017*“-exec grep-l“12345”/dev/null{}+| xargs-I%cp%”/path/TargetFolder“

这是运行以下命令(
find”/path/SourceFolder“-name”*may2017*“-exec grep-l“12345”/dev/null{}+
)时的实际输出:

实际产出

/path/SourceFolder/Folder\u 2017年5月

所需输出

/path/SourceFolder/Folder\u may2017/12345.xml