Linux сам по себе может хранить только время создания файла, время его последней модификации и время последнего доступа к нему (access time). С помощью
find можно найти все файлы, к которым обращались более 30 дней назад и удалить, например так:
find ./mydir/* -atime +30 -delete
Но стоит отметить, что "к файлу обращались" и "его открывали в какой-то программе" - это не одно и то же, т.е. время обращения к файлу может измениться в результате других действий, которые бы вы не назвали словом "открывать".