I'm trying to delete all the files that do not start with __
. This
ls | grep -v "__" | xargs -0 rm
Yields : File name too long
. Any help?
EDIT:
ls | grep -v "__" | awk '{print("rm \42"$0"\42")}' | /bin/bash
solves the problem, but I'd like to know why the first is not correct. Thanks
Take out the
-0
argument and it will fix this problem. the-0
arg to xargs says that the items in the input list are null terminated. You aren't doing that, you are passing lines terminated by an\n
character.