удалите все файлы в каталоге с несколькими расширениями

У меня есть файлы, которые попадают в две дополнительных категории (.out и .error). Существует ли единственная команда, которая может удалить их внезапно?

Я попробовал rm -f *.out || *.error но это не работало.Спасибо

(я видел связанное сообщение также, но не уверен, как иметь дело с несколькими расширениями все еще),

Править: не рекурсивный случай

1
задан 16 August 2017 в 07:57

1 ответ

|| здесь не требуется 1 , rm будет действовать на все операнды, поэтому:

rm *.error *.out

Или, используя расширение скобок bash (полезно, если вы длинный список):

rm *.{error,out}

1 Мало того, что || не требуется, это также меняет структуру команд. || - это bash's OR для команд . Итак, если у вас есть файлы a.error, b.error и a.out, b,out, bash выполнит:

rm a.out b.out

И если , что не удалось, то выполните [ 1111] с b.error в качестве аргумента. Он не будет передавать a.error или b.error во второй прогон rm.

3
ответ дан 7 December 2019 в 12:32

Другие вопросы по тегам:

Похожие вопросы: