cp命令在Linux中失败

Rob*_*obo 1 linux

我在RHEL 5中执行shell脚本时遇到了复制命令问题.

执行命令是

cp -fp /fir1/dir2/*/bin/file1 `find . -name file1 -print`
Run Code Online (Sandbox Code Playgroud)

错误是

cp: Target ./6e0476aec9667638c87da1b17b6ccf46/file1 must be a directory
Run Code Online (Sandbox Code Playgroud)

请你提出一些想法,为什么它会失败?

谢谢罗伯特.

Dav*_*d Z 5

cp使用两个以上的文件名作为参数调用时,它将最后一个文件名视为目标目录,并将其他参数中指定的所有文件复制到该目标目录中.所以,例如,

cp file1 file2 dir3
Run Code Online (Sandbox Code Playgroud)

将创造dir3/file1dir3/file2.在您的情况下,似乎模式/fir1/dir2/*/bin/file1匹配多个文件名,因此cp尝试将结果find视为目标目录 - 它不是 - 并且失败.