Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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

share|improve this question

1 Answer 1

up vote 2 down vote accepted

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.