【发布时间】:2012-03-13 09:02:32
【问题描述】:
我正在运行这个命令:
cd /tmp;find / -maxdepth 2 -type f | xargs -0 sed -i 's/teststring1/finally/g'
它会一直处理,直到它报告错误:文件名太长。查找文档,似乎是文件名超过 1024 字节。无论如何,我认为使用 print 0 会抑制这一点,但没有。是否有任何命令可以跳过错误而不仅仅是停止?
【问题讨论】:
-
您可以通过管道传输到
while read line而不是 xargs?这样它将跳过失败的行并继续其他行。 -
我的语法不正确,你能告诉我在我朋友的上下文中的命令吗?
-
您是否手动重新键入了此命令?
cd /tmp; find /有点好笑,尽管xargs(1)命令行中有-0,但命令中没有-print0。请不要重新键入命令或代码,这会无缘无故地使调试变得更加困难。请复制并粘贴。 :) -
我无法重现这个;在我的
ext3/tmp目录上,文件和目录名称不能超过 256 个字符,当我将文件放置在七个目录以下时,它仍然没有给出 filename too long 错误消息.