如何发送cp文件名列表(带空格)

|| Egrep正在根据其内容为我生成文件列表,但是尝试将列表作为参数传递给cp时我做错了。 (我的外壳是bash)。我以为我会转义文件名中的空格并将换行符转换为空格,但是cp似乎忽略了管道输入中的转义空格。 文件名示例:
2011-05-15\\ 14.43.41.txt
$ cp `egrep -l \"OS\\ version: 10.6\" * | sed -e \'s/ /\\ /g\' | tr \'\\n\' \' \'`  ~/crashreportstemp/

cp: cannot stat `2011-05-15\': No such file or directory

当我执行反引号的内容时,我得到的输出可以直接粘贴到cp中。 我也尝试过使用xargs:
$ egrep -l \"OS\\ version: 10.6\" * | sed -e \'s/ /\\ /g\' | tr \'\\n\' \' \' | xargs cp  ~/crashreportstemp 
但这导致cp将最后传递的文件名视为最终的cp参数,而忽略了我对cp的显式参数:
cp: target `2011-05-30 16.23.30.txt\' is not a directory
我显然忽略了正确的方法,请帮忙! 谢谢-杰森     
已邀请:
        尝试这样的事情:
egrep -l \"OS\\ version: 10.6\" * | sed -e \'s/ /\\ /g\' | tr \'\\n\' \' \' && echo ~/crashreportstemp | xargs cp
在您的版本中,〜/ crashreportstemp作为第一个参数传递给cp,而不是最后一个。     

要回复问题请先登录注册