Главная >> Инструкции >> Удаление файлов старше n дней в Linux

Удаление файлов старше n дней в Linux

Пользователи Linux иногда сталкиваются с ситуацией, когда нужно почистить определенный каталог, удалив из него старые, неиспользуемые файлы. Через стандартный проводник это делать далеко не всегда удобно. Но данную процедуру очень просто выполнять через терминал.

По ходу данной статьи мы разберемся с удалением файлов старше определенного количества дней в Ubuntu. Заодно объясним некоторые нюансы этой процедуры.

Удаление файлов старше n дней в Linux

Для терминала Ubuntu существует специальная команда find, которая отвечает за поиск файлов на компьютере. А с помощью опции -mtime получится найти только те файлы, дата изменения которых старше заданного временного промежутка. В качестве примера возьмем каталог Downloads и срок в 35 дней.

Откройте терминал и запустите следующую команду:

find ~/Downloads -type f -mtime +35

l9Re2QBxA1VowAAAABJRU5ErkJggg==

В результате вы увидите полный список файлов в выбранном каталоге, которые соответствуют заданному критерию. Не забудьте только поменять местоположение и временной промежуток по своему усмотрению. Заодно убедитесь, что в списке нет важных данных, которые могут быть стерты.

Следующий шаг – непосредственно чистка:

find ~/Downloads -type f -mtime +35 -delete

8fsAGtAO1XbSkAAAAASUVORK5CYII=

Вам необязательно действовать напрямую и стирать сразу же все файлы. Их можно отсортировать дополнительно по еще одному признаку, например, по названию или расширению. Для этого есть опция -name, которая прописывается сразу же после директории. Если нужно избавиться только от zip-архивов, то подойдет такая команда:

find ~/Downloads -name "*.zip" -type f -mtime +35 -delete

ByZkw8E2C2n2AAAAAElFTkSuQmCC

Ну и напоследок хотелось бы упомянуть, что при запуске терминала Ubuntu из конкретной папки вручную директорию прописывать не придется. Это можно сделать через стандартное приложение Файлы, если перейти к нужному каталогу, кликнуть правой клавишей мыши по пустому месту и в контекстном меню выбрать пункт Открыть в терминале.

7v5wAAAABJRU5ErkJggg==

Тогда команда для поиска, если она еще нужна, сократится до следующего варианта:

find -type f -mtime +35

wd2Gmddp20QPQAAAABJRU5ErkJggg==

А для удаления не забудьте в конце дописать опцию -delete:

8f507C0nZQ++gAAAAASUVORK5CYII=

Выводы

По ходу данной статьи мы вкратце объяснили, как можно в конкретном каталоге отыскать файлы старше определенного возраста через терминал Ubuntu, а также как удалить файлы старше n дней linux. Сама по себе процедура довольно простая, но может сэкономить много времени при чистке уже ненужных данных с компьютера.

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

11 комментариев к “Удаление файлов старше n дней в Linux”

  1. А можно ли этой командой также удалять и каталоги совместно с файлами? Например, у меня в Temp находятся куча ненужных файлов и каталогов. Нужно удалить файлы и каталоги старше 30 дней после их создания.

    Ответить
  2. Всё это можно написать в скрипт, сделать его исполняемым и положить в папку(и) по надобности периода очистки в:
    /etc/cron.hourly - каждый час
    /etc/cron.weekly - раз в неделю
    /etc/cron.monthly - раз в месяц
    и т.д...
    И Cron будет сам всё делать...

    Ответить
  3. Отличная статья!!!
    А нету случайно допопции к команде, чтобы она не искала в поддиректориях, а только в корне указанной директории? Буду очень признателен!

    Ответить
  4. Короче - команда по-умолчанию рекурсивная, и поэтому отрабатывает и в подпапках! Если хотите отключить рекурсивный режим, то после указания пути добавьте -maxdepth 1
    Пример:
    find /home/usr/INSTALL -maxdepth 1 -type f -mtime +4

    Ответить

Оставьте комментарий