Grep 和 xargs:文件名太长

pis*_*hio 4 linux bash

我正在尝试删除所有__. 这个

ls | grep -v "__" | xargs -0 rm
Run Code Online (Sandbox Code Playgroud)

产量: File name too long。有什么帮助吗?

编辑:

ls | grep -v "__" | awk '{print("rm \42"$0"\42")}' | /bin/bash
Run Code Online (Sandbox Code Playgroud)

解决了问题,但我想知道为什么第一个不正确。谢谢

use*_*517 6

拿出-0参数,它会解决这个问题。-0xargs的arg 表示输入列表中的项目以空字符结尾。您没有这样做,您正在传递以\n字符结尾的行。