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

bash как удалить файлы и директории, старше x-дней?

Есть некая директория Test. В ней находятся файлы и папки. Как удалить только то, что старше 10 дней к примеру.

приводит к удалению и самой директории Test, если в ней нет свежих файлов, естественно.

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

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

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

Там не только файлы под удаление, но и папки, в том то и проблема.

При Test, без свежих файлов, удаляет и саму Test

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

Разница в скорости будет незаметна, но зато есть везде, ибо posix. Но для не \;, а +

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

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

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

При Test, без свежих файлов, удаляет и саму Test

Вариант с * не затронет сам каталог

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

Утилита tmpwatch. Одна короткая строчка. И никаких предлагаемых тут нагромождений.

приводит к удалению и самой директории Test, если в ней нет свежих файлов, естественно.

делай touch /path/to/search/dir/.placeholder перед запуском find и всё. Никаких find dir/*, это пропустит все файлы и директории начинающиеся с точки «.»

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

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

с возможностью появления завтра у ТСа еще вопроса, например, что делать, если

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

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

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

Вот только у вас не Ванга, а натуральный наполеонизм какой-то. Я комментировал не вас, а teod0r-а, который комментировал скрипт bash как удалить файлы и директории, старше x-дней? (комментарий)

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

Скорее всего я просто не совсем верно интерпретировал ваш пост.

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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.

9 Answers 9

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

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

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.

-mmin is for minutes.

Try looking at the man page.

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

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.

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.

Источник

Команды для удаления большого количества файлов в Linux

Удаление старых файлов linux по маске чаще всего осуществляется следующим образом:

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

Синтаксис в простейшем случае может выглядеть так:

for f in /var/log/apache2/*.log; do rm «$f»; done

В цикл for можно добавить любую дополнительную логику.

Удаление старых файлов в Linux по Cron

Логи или другие файлы (сессии РНР) можно удалять как используя циклы (так приходится делать обычно если логов или других файлов накопилось действительно очень много), но если система не запущена или только создается лучше использовать регулярно выполняемое задание Cron, согласно которому с заданной периодичностью будут удаляться файлы определенных типов

# m h dom mon dow command

В примере удаляются сессии РНР для сайта старше 7 дней.

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

В цикле то же самое можно сделать так:

for f in /tmp/logs/*.log

Приведенное выражение, как и любой другой цикл можно поместить в файл, сделать его исполняемым и с тем же успехом выполнять по Cron

Источник

Как удалить файл через терминал Linux

Эта небольшая заметка ориентирована на совсем начинающих. Сегодня мы рассмотрим как удалить файл linux через терминал. Для более опытных пользователей это элементарная задача, но новичкам надо с чего-то начинать. Знать как работать с файлами в консоли очень важно.

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

В Linux для удаления файлов предусмотрена стандартная утилита rm. Как и все остальные, стандартные утилиты в имени rm тоже заложена определенная идея. Это сокращение от английского слова Remove.

Удаление файлов в Linux

Чтобы удалить файл linux достаточно передать в параметрах команде адрес файла в файловой системе:

Чтобы удалить все файлы, начинающиеся на слово file можно использовать специальный символ *, означает любой символ в любом количестве:

rm: удалить пустой обычный файл «/home/user/file»?

Будет удалено все что находиться в папке dir, и эта папка. Только будьте бдительны, чтобы не получился знаменитый патч Бармина:

Не стоит выполнять эту команду в своей системе, как видите, она удаляет все файлы в файловой системе Linux.

Удаление файла в linux также возможно с помощью утилиты find. Общий синтаксис find:

find папка критерий действие

Например, мы хотим удалить файл linux по имени:

Удалить все файлы в текущей директории, соответствующие определенному регулярному выражению:

Или удалить файлы старше определенного строка, может быть полезно для удаления старых логов:

Будет выполнено удаление файлов через терминал все файлы в папке старше 5-ти дней.

Выводы

Вот и все. Теперь вы знаете как удалить файл в Ubuntu, как видите, делать это не так уж сложно. Если у вас остались вопросы, пишите в комментариях!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *