Удалить файлы в каталоге на основе частичного имени

Я хотел знать, каков наилучший способ удаления любых файлов, независимо от того, какое расширение у них основано на частичном имени.

Пример:

13-05-12_foo_something.jpg
13-06-01_something.png
13-05-05_foo_site.html

rm все в каталоге и во вложенных папках с _foo_ в имени.

4
задан 13 September 2013 в 23:15

2 ответа

Простой способ:

cd /path/to/directory
rm *_foo_*

или

rm /path/to/directory/*_foo_*

Звездочка (*) соответствует всем символам.

Чтобы получить объяснения о том, что делается, используйте rm с опцией -v. Чтобы получать подсказки перед каждым удалением, используйте rm с опцией -i:

rm -vi *_foo_*

См. man rm для получения дополнительной информации.

0
ответ дан 13 September 2013 в 23:15

Если вы хотите сделать это также во всех подкаталогах, самый простой способ - включить опцию оболочки globstar:

shopt -s globstar
rm **/*foo_*

Должна быть строка с комментариями (т.е. начинающаяся с #) в по умолчанию ~/.bashrc (строка 29 у меня):

# shopt -s globstar extglob

Просто раскомментируйте эту строку, и вы получите доступ к некоторым улучшенным функциям bash .

0
ответ дан 13 September 2013 в 23:15

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

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