想知道为什么sed不像我期望的那样使用xargs

我想知道为什么下面的命令不起作用:

sudo find . -name index.htm | xargs -0 sudo sed -i 's/pattern1/pattern2/g'

当分别运行这两个命令时,它们按预期工作, findfind了所有需要改变的文件, sed根据正则expression式正确地replace了文本(显然,当我单独运行sed命令时,我提供了一个文件名作为参数) 。 当与xargs -0一起运行时,我得到了

 sed: ./index.htm ./folder1/index.htm ./folder1/subfolder2/index.htm ... ... ./lastfolder/index.htm: No such file or directory 

我结束了使用

 sudo find . -name index.htm -exec sudo sed -i 's/pattern1/pattern2/g' {} \; 

它工作得很好,我只是好奇,为什么使用xargs不工作….

您没有使用-print0选项。

目录或文件名中是否有空格?