Удалить файлы в каталоге, соответствующие регулярному выражению, используя терминал Mac

Удалить файлы в каталоге, соответствующие регулярному выражению, используя терминал Mac

Как удалить файлы в каталоге, соответствующие заданному регулярному выражению, или найти похожее решение, используя терминал Mac?

решение1

Используйте findкоманду.

Найти все файлы (рекурсивно), соответствующие регулярному выражению: find . -type f -regex '/ex/'
Найти все файлы (рекурсивно), соответствующие регулярному выражению, и удалить их:find . -type f -regex '/ex/' -exec rm {} \;

Скобки хранят найденный путь, а обратная косая черта экранирует точку с запятой, поскольку она передается find; без экранирования она будет поглощена оболочкой. Если это ускользнуло от вас, прочитайте первые две главы «Изучение оболочки Bash».

Проверьте man-страницы для findполучения дополнительных опций. Существует гораздо больше способов поиска.

решение2

Очень похоже на ответ jorelli. Вот что я использую:

find . -regex '/ex/' -print0 | xargs -0 rm

Аргументы -print0и -0заставляют find выводить список, разделенный символами 0, а xargs — выполнять rmкоманду в каждом элементе списка, поэтому пути с пробелами не являются проблемой.

Связанный контент