2014-11-12 2 views
0

Я хочу удалить все файлы с расширением '* .tar.gz', используя команду bash. Я пробовал следующее, но это не сработало.Удаление всех файлов с определенным расширением с использованием bash

find . -iname '*.tar.gz' | rm 

Не могли бы вы предложить, какую команду следует использовать в этом случае? Кроме того, не могли бы вы рассказать мне, почему вышеуказанная команда не работает?

ответ

3

Не труба rm к выходу find выхода, используйте xargs или find -exec:

find . -iname '*.tar.gz' -exec rm {} + 

ИЛИ:

find . -iname '*.tar.gz' -print0 | xargs -0 -I {} rm {} 
+0

Найти также имеет флаг '-delete':' find. -iname '* .tar.gz' -delete' – Jost

+1

@Jost '-delete' не указан POSIX. –

+0

'-delete' не определен POSIX, но поддерживается BSD' find'. – chepner

5

find сам может удалить в некоторых версиях, так:

find . -iname '*.tar.gz' -delete 

, если у вас нет этого переключателя, используйте решение anubhava.

Смежные вопросы