Xargs不听stdin

时间:2011-08-03 11:19:00

标签: linux bash xargs kubuntu

我尝试将svn:keywords属性添加到所有现有的* .php和* .phtml文件中。因此,我使用此命令:

find . -regex '.*\.php' -o -regex '.*\.phtml'|xargs svn propset svn:keywords "Id"

根据Mateusz Loskot,这应该将属性添加到所有文件中。如果我运行find . -regex '.*\.php' -o -regex '.*\.phtml',则会找到所有文件,但xargs会返回此消息:xargs: svn: No such file or directory

我还尝试导出找到的列表(>> ~/temp)并使用xargs -a从文件输入中读取参数,但没有成功。如何更新我的所有php文件?

PS。我使用的是Kubuntu Linux Natty(11.04),它内置了bash 4.2.8和xargs 4.4.2(如果这可能很重要)

2 个答案:

答案 0 :(得分:1)

您的命令看起来不错。似乎xargssvn中找不到PATH命令。验证它是否可用或使用完整文件路径(which svn应显示svn的完整路径。)

要阻止文件名问题中的空格,我建议-print0使用find参数,-0推荐xargs

find . -name '\*.php' -o -name '\*.phtml' -print0 | xargs -0 svn propset svn:keywords "Id"

答案 1 :(得分:0)

您可以尝试常用的技巧,例如:

find ... | while read i ; do svn propset svn:keywords Id "$i" ; done