Казалось бы, простая задачка. В Windows все просто - del /S smth.*, готово. Все файлы по маске smth.* в текущей директории и ниже будут удалены.
В Linux чуток сложнее.
Есть в Linux команда rm, но она дальше текущей директории не идет, зато прекрасно понимает полный путь к файлу, чем мы и воспользуемся.
Получить список всех файлов в текущей директории и поддиректориях по маске позволяет команда find -name "smth.*", ее вывод то нам и нужен. Осталось его перенаправить на вход команды rm. Это можно сделать 5ю способами:
xargs - формирует команду rm с аргументами считанными из стандартного ввода на которой мы подадим вывод команды find. нюансы использования описаны
тут1.
find /path/to/dir -type f -name 'smth*' -print0 | xargs -0 rm;exec - перенапаравляем вывод команды find на вход команды rm
2.
find -name 'smth.*' -exec rm {} \;UPD.find - самый рульный способ
3.
find -name 'smth.*' -delete;UPD.Способы
подсказанные камрадом
goodvin4. find . -type f -name 'smth*' -delete
5. find . -type f -name 'smth' -exec rm -f -- "{}" \;
Может есть ещё какие нибудь способы??