xargs cp如何使用asterix?

xargs cp how to use asterix?

我正在尝试通过掩码复制文件并保留文件夹结构(使用 --parents),我不能直接使用 cp -r --parentsrsync 因为 argument list too long 错误。

ls folder1/folder2/ | head | xargs -I {} cp -r --parents folder1/folder2/{}/neutral* neutral_data/

但星号符号在这里似乎没有按预期工作,相反我得到了一些错误,例如:

cp: cannot stat 'folder1/folder2/folder3/neutral*': No such file or directory

在这种情况下使用星号符号的正确方法是什么,或者解决这个问题的任何其他方法是什么?

更新:

基于这个答案https://unix.stackexchange.com/a/5247/221416我试过了

ls folder1/folder2/ | head | xargs -I {} sh -c cp -r --parents folder1/folder2/{}/neutral* neutral_data/

但它给出了错误:

cp: missing file operand

解决方法如下:

ls folder1/folder2/ | xargs -I {} bash -c "cp -r --parents folder1/folder2/{}/neutral* neutral_data/"