【发布时间】:2020-01-25 10:01:25
【问题描述】:
我有两个目录,x86_64 和 i386。
我想从这两个文件夹中过滤掉测试 RPMS 并将它们放在一个单独的文件夹中;分别为test_release/{version}-x86_64/x86_64 和test_release/{version}-i386/i386。
所以我的第一个命令运行良好:
find x86_64/ -type f -name '*test*' -o -name '*demo*' -o -name '*log*' |
xargs cp -rt test_release/${RELEASE}-x86_64/x86_64
我的第二个命令完全相同,只是文件夹名称不同:
find i386/ -type f -name '*test*' -o -name '*demo*' -o -name '*log*' |
xargs cp -rt test_release/${RELEASE}-i386/i386
只有第二个命令给了我错误:
cp: missing file operand
我错过了什么吗?
【问题讨论】:
-
可能不相关,但您的查找命令将选择与
*demo*或*log*匹配的文件夹 以及文件 -
如果您单独运行它,即没有 xargs,第二个命令中的
find是否会给您一个输出? -
@Pacifist 不,它没有给我输出。显然它找不到文件夹 i386?当我对 x86 文件夹执行相同操作时,它确实给了我输出。
-
@oguzismail 我认为通过指定 -type f 标志它只会给我文件?
-
这就是问题所在。
cp <source> <target>,它缺少源。第一个命令也是如此,因为那里没有丢失源代码。