Linux удалить файл старше даты

Как найти и удалить файлы старше X дней в Linux

Очень важно находить и очищать старые файлы, которые больше не нужны через определенный промежуток времени.

Вот быстрый способ сделать это.

В этом кратком руководстве вы узнаете, как находить и удалять файлы старше X дней в Linux и Unix-подобных операционных системах.

Найти и удалить файлы старше X дней в Linux

Отказ от ответственности: вы должны быть очень осторожны при выполнении этих команд.

Эти команды не запрашивают подтверждения перед удалением файлов.

Он просто удалит файлы после нажатия клавиши ENTER. Так что будьте очень осторожны!

Сначала давайте узнаем файлы старше X дней, например 30 дней.

Чтобы сделать так, просто:

Вышеупомянутая команда найдет и отобразит старые файлы старше 30 дней. Вот,

dot (.) – Представляет текущий каталог.
-mtime – представляет время изменения файла и используется для поиска файлов старше 30 дней.
-print – отображает старые файлы

Если вы хотите искать файлы в определенном каталоге, просто замените точку на путь папки.

Например, чтобы узнать файлы, которые старше 30 дней в каталоге / home / sk / Downloads, просто запустите:

Теперь, чтобы удалить файлы, запустите любую из следующих команд.

Снова предупреждаю вас, что эти команды будут удалять файлы сразу после нажатия кнопки ENTER.

Перед выполнением этих команд будьте осторожны и дважды проверьте их.

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

Вы можете использовать свободное пространство для любых других полезных целей.

Источник

🇺🇳 Как найти и удалить файлы старше определенного периода времени в Linux

Поиск по метке времени файла

Файловые системы Unix / Linux имеют три типа отметок времени для каждого файла. Они заключаются в следующем:

  • Время доступа (-atime): отметка времени последнего обращения к файлу.
  • Время изменения (-mtime): отметка времени последнего изменения файла.
  • Время изменения (-ctime): отметка времени последнего изменения метаданных для файла (например, прав доступа или владельца).

Поиск и удаление файла старше 7 дней

Давайте рассмотрим пример, в котором мы найдем и удалим файл старше 7 дней.

Читайте также:  Linux как поменять пароль администратора

Для этого мы будем использовать опцию «-mtime» команды find.

2. Если имена файлов начинаются с какого-либо конкретного шаблона, отфильтруйте его следующим образом:

3. После проверки и подтверждения вывода, перейдите к скрипту удаления (это очень важно), в противном случае произойдет безвозвратная потеря данных.

4. Если это необходимо сделать на удаленном сервере через задание cron и зарегистрировать имена удаленных файлов, используйте следующую команду

Заключение

Параметр -mtime будет искать файлы по времени модификации; время поиска в зависимости от времени изменения.

Время использования -atime, -mtime и -ctime измеряется в днях.

Команда find также поддерживает параметры, измеряемые в минутах.

-амин (время доступа)
-mmin (время модификации)
-cmin (изменить время)

Например, чтобы вывести все файлы со временем доступа более семи минут, используйте следующую команду:

Опция -newer

Опция -newer указывает эталонный файл со временем модификации, который будет использоваться для выбора файлов, измененных раньше, чем эталонный файл.

Источник

linux-notes.org

Как найти и удалить файлы старше конкретной даты в Linux

Хочу в этой теме «Как найти и удалить файлы старше конкретной даты в Linux» рассказать как можно найти и удалить определенные файлы по дате в ОС Linux таких как Debian, Ubuntu или Redhat, Centos. На готовых примера покажу что и как нужно делать.

1. Посмотрим список всех файлов в папке с датой изменения, для этого стоит выполнить команду:

пример использование команды ls -lah для вывода подробной информации о файлах

2. Чтобы узнать сегодняшнюю дату, нужно выполнить:

3. Команда что выше не вывела полную дату, можно это исправить:

4. Допустим нужно найти файлы и удалить их по определенной дате.

Если нужно найти все файлы свыше 3 дня и после чего удалить их:

Если нужно найти все файлы свыше 90 дней и после чего удалить их:

Если нужно найти все файлы свыше 365 дней и после чего удалить их:

Если нужно найти все файлы свыше 100 дней и после чего удалить их:

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

можно еще вот так:

Ключи:
-name — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки.
-type — тип искомого: f=файл, d=каталог, l=ссылка (link).
-user — владелец: имя пользователя или UID.
-group — владелец: группа пользователя или GID.
-perm — указываются права доступа.
-size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).
-atime — время последнего обращения к файлу.
-ctime — время последнего изменения владельца или прав доступа к файлу.
-mtime — время последнего изменения файла.
-newer другой_файл — искать файлы созданные позже, чем другой_файл.
-delete — удалять найденные файлы.
-ls — генерирует вывод как команда ls -dgils.
-print — показывает на экране найденные файлы.
-exec command <> \; — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис.
-ok — перед выполнением команды указанной в -exec, выдаёт запрос.
-depth — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.
-prune — используется, когда вы хотите исключить из поиска определённые каталоги.
N — количество дней.

Читайте также:  Booting ubuntu from usb windows

Источник

Как найти и удалить файлы старше конкретной даты в Linux

Как найти и удалить файлы старше конкретной даты в Linux

Хочу в этой теме «Как найти и удалить файлы старше конкретной даты в Linux» рассказать как можно найти и удалить определенные файлы по дате в ОС Linux таких как Debian, Ubuntu или Redhat, Centos. На готовых примера покажу что и как нужно делать.

1. Посмотрим список всех файлов в папке с датой изменения, для этого стоит выполнить команду:

пример использование команды ls -lah для вывода подробной информации о файлах

2. Чтобы узнать сегодняшнюю дату, нужно выполнить:

3. Команда что выше не вывела полную дату, можно это исправить:

4. Допустим нужно найти файлы и удалить их по определенной дате.

Если нужно найти все файлы свыше 3 дня и после чего удалить их:

Если нужно найти все файлы свыше 90 дней и после чего удалить их:

Если нужно найти все файлы свыше 365 дней и после чего удалить их:

Если нужно найти все файлы свыше 100 дней и после чего удалить их:

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

можно еще вот так:

-name — искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки.

-type — тип искомого: f=файл, d=каталог, l=ссылка (link).

-user — владелец: имя пользователя или UID.

-group — владелец: группа пользователя или GID.

-perm — указываются права доступа.

-size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).

-atime — время последнего обращения к файлу.

-ctime — время последнего изменения владельца или прав доступа к файлу.

-mtime — время последнего изменения файла.

-newer другой_файл — искать файлы созданные позже, чем другой_файл.

-delete — удалять найденные файлы.

-ls — генерирует вывод как команда ls -dgils.

-print — показывает на экране найденные файлы.

-exec command <> ; — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис.

-ok — перед выполнением команды указанной в -exec, выдаёт запрос.

-depth — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.

Читайте также:  Mac formatted hard disk windows

-prune — используется, когда вы хотите исключить из поиска определённые каталоги.

Источник

How to delete files older than X hours

I’m writing a bash script that needs to delete old files.

It’s currently implemented using :

This will delete of the files older than 1 day.

However, what if I need a finer resolution that 1 day, say like 6 hours old? Is there a nice clean way to do it, like there is using find and -mtime?

9 Answers 9

Does your find have the -mmin option? That can let you test the number of mins since last modification:

Or maybe look at using tmpwatch to do the same job. phjr also recommended tmpreaper in the comments.

Here is the approach that worked for me (and I don’t see it being used above)

deleting all the files older than 59 minutes while leaving the folders intact.

You could to this trick: create a file 1 hour ago, and use the -newer file argument.

(Or use touch -t to create such a file).

-mmin is for minutes.

Try looking at the man page.

If one’s find does not have -mmin and if one also is stuck with a find that accepts only integer values for -mtime , then all is not necessarily lost if one considers that «older than» is similar to «not newer than».

If we were able to create a file that that has an mtime of our cut-off time, we can ask find to locate the files that are «not newer than» our reference file.

To create a file that has the correct time stamp is a bit involved because a system that doesn’t have an adequate find probably also has a less-than-capable date command that could do things like: date +%Y%m%d%H%M%S -d «6 hours ago» .

Fortunately, other old tools can manage this, albeit in a more unwieldy way.

To begin finding a way to delete files that are over six hours old, we first have to find the time that is six hours ago. Consider that six hours is 21600 seconds:

Since the perl statement produces the date/time information we need, use it to create a reference file that is exactly six hours old:

Now that we have a reference file exactly six hours old, the «old UNIX» solution for «delete all files older than six hours» becomes something along the lines of:

It might also be a good idea to clean up our reference file.

Источник

Оцените статью