如何发送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
我显然忽略了正确的方法,请帮忙!
谢谢-杰森
没有找到相关结果
已邀请:
1 个回复
漂汀拦
在您的版本中,〜/ crashreportstemp作为第一个参数传递给cp,而不是最后一个。