xargs cp如何使用asterix?
xargs cp how to use asterix?
我正在尝试通过掩码复制文件并保留文件夹结构(使用 --parents
),我不能直接使用 cp -r --parents
或 rsync
因为 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/"
我正在尝试通过掩码复制文件并保留文件夹结构(使用 --parents
),我不能直接使用 cp -r --parents
或 rsync
因为 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/"