Назад | Перейти на главную страницу

Grep и xargs: слишком длинное имя файла

Я пытаюсь удалить все файлы, которые не начать с __. это

ls | grep -v "__" | xargs -0 rm

Урожайность : File name too long. Любая помощь?

РЕДАКТИРОВАТЬ:

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

решает проблему, но хотелось бы знать, почему первое неверно. Спасибо

Выньте -0 аргумент, и это решит эту проблему. в -0 arg to xargs говорит, что элементы во входном списке завершаются нулем. Вы этого не делаете, вы передаете строки, заканчивающиеся \n персонаж.