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

Удалить все файлы, соответствующие шаблону в каталоге

Как удалить все файлы, содержащие -20 в имени файла в текущем каталоге?

у меня есть

ls | grep "-20" | rm -rf

Но это не работает. Идеи?

Спасибо.

rm -- *-20*

- останавливает обработку -20 как аргумент для rm, если файл -20 существует.

Ваша проблема с

ls | grep "-20" | rm -rf  # DOESN'T WORK

это то, что вы передаете имена файлов по конвейеру rm но rm не читает со стандартного ввода. Вам нужно использовать xargs звонить rm неоднократно нравится:

ls | grep '-20' | xargs rm -rf

Но на самом деле вы не хотите использовать ls | grep чтобы найти имена файлов. Использовать find команда.

find . -name '*-20' | xargs rm -rf

Но, конечно, как сказал другой плакат, лучшее решение - rm -- *-20*.