Я хотел знать, каков наилучший способ удаления любых файлов, независимо от того, какое расширение у них основано на частичном имени.
Пример:
13-05-12_foo_something.jpg
13-06-01_something.png
13-05-05_foo_site.html
rm все в каталоге и во вложенных папках с _foo_
в имени.
Простой способ:
cd /path/to/directory
rm *_foo_*
или
rm /path/to/directory/*_foo_*
Звездочка (*
) соответствует всем символам.
Чтобы получить объяснения о том, что делается, используйте rm
с опцией -v
. Чтобы получать подсказки перед каждым удалением, используйте rm
с опцией -i
:
rm -vi *_foo_*
См. man rm
для получения дополнительной информации.
Если вы хотите сделать это также во всех подкаталогах, самый простой способ - включить опцию оболочки globstar:
shopt -s globstar
rm **/*foo_*
Должна быть строка с комментариями (т.е. начинающаяся с #
) в по умолчанию ~/.bashrc
(строка 29 у меня):
# shopt -s globstar extglob
Просто раскомментируйте эту строку, и вы получите доступ к некоторым улучшенным функциям bash .