Вопрос насчет команды find в командной строке Linux.
Например, если я ввожу find. -name "*a*" -exec rm {} \; , то удаляются все файлы, содержащие в своем название символ "a". А как сделать так, чтобы удалялись только те файлы, имена которых оканчиваются на символ "a"?
find. -name "*a" -exec rm {} \; не прокатит ?
может быть надо каким-то образом указывать на конец строки ? как в регулярных выражениях php например "*a^" вроде
Все должно работать:
Вот когда я прописываю в исполняем файле sh так
find . -name "*a" -exec echo "Found: {}" \;
то он не находит ничего при этом не выдает никаких сообщений.
А когда я написала вместо "*a" вот так "*txt" то он нашел все текстовые файлы. Тогда я пришла к выводу, что он ищет расширения. То есть если я создам файл с именем file.a то он отобразит его. А вот файл aaa.txt уже нет. (хотя окончание на символ a)
Может, попробывать сделать это с помощью цикла? например пробегаем название файла пока символ не есть точка. Как только равен точка (дальше идет расширение) проверяем равен ли предыдущий символ нужному нам значению, и если да, отображаем его. Или это бред?
З.Ы. "*a^" так тоже не находит. (даже если расширение файла оканчивается на a)
В POSIX нет расширений - все символы имени файла равноправны. Используй шаблон "*a.*".