У меня есть несколько (архивных) файлов резервных копий в каталоге; имена файлов, начинающиеся с «backup-».Удалить все файлы, но сохранить новейшие (ы)
Я хочу удалить все файлы, которые старше, пусть говорят 7 дней, но всегда должен быть один файл слева (самый новый), иначе у меня больше нет файла резервной копии.
У меня есть исходный код (см. Ниже), который удалит ВСЕ файлы старше 7 дней, но как всегда хранить новейший файл в каталоге? Таким образом, один слева может быть старше 7 дней (если это самый новый).
$bu_days=7;
$files="backup*.tar.gz";
foreach(glob($filter) as $fd) {
if(is_file($fd) && time() - filemtime($fd) >= $bu_days*24*60*60) {unlink($fd);}
}
Просто посчитайте ваши файлы и перерыв; foreach, когда осталось всего 1 файл? – Thomas
Вам нужно будет провести некоторое тестирование перед удалением чего-либо. – RST
Если ваш вопрос был решен, отметьте соответствующий ответ как решение (вместо того, чтобы добавить «разрешено» к вашему типу вопроса). –