Удалять файлы старше дней linux

Содержание
  1. Shell script to delete directories older than n days
  2. 5 Answers 5
  3. bash как удалить файлы и директории, старше x-дней?
  4. Как найти и удалить файлы старше X дней в Linux
  5. Найти и удалить файлы старше X дней в Linux
  6. You may also like
  7. 📜 Чтение файла построчно на Bash
  8. 📧 В чем разница между IMAP и POP3
  9. ✔️ Как управлять контейнерами LXD от имени обычного.
  10. 📜 Руководство для начинающих по созданию первого пакета.
  11. Феноменальная популярность электроники Xiaomi: основные причины
  12. 📜 Получение вчерашней даты в Bash: Практическое руководство
  13. Использование специальных гелей при мышечных болях
  14. 🐧 Сравнение команд Printf и Echo на Linux
  15. 📦 Как расширить/увеличить файловую систему VxFS на Linux
  16. Услуги по размещению серверного оборудования в ЦОД
  17. Leave a Comment Cancel Reply
  18. • Свежие записи
  19. • Категории
  20. • Теги
  21. • itsecforu.ru
  22. • Страны посетителей
  23. IT is good
  24. Удаление файлов старше n дней в Linux
  25. Удаление файлов старше n дней в Linux
  26. Выводы

Shell script to delete directories older than n days

To they bare any relation on their actual creation/modification time? Because find could do it without looking at the name then.

What do you mean by «older than»? Are you referring to the time the directory was created, the time its contents were last changed, or something else? Be careful with some of the answers below; ctime is the inode change time. For a directory, it changes when files are added or removed from the directory.

5 Answers 5

This will do it recursively for you:

find /path/to/base/dir/* -type d -ctime +10 -exec rm -rf <> \; 

Explanation:

  • find : the unix command for finding files / directories / links etc.
  • /path/to/base/dir : the directory to start your search in.
  • -type d : only find directories
  • -ctime +10 : only consider the ones with modification time older than 10 days
  • -exec . \; : for each such result found, do the following command in .
  • rm -rf <> : recursively force remove the directory; the <> part is where the find result gets substituted into from the previous part.

Alternatively, use:

find /path/to/base/dir/* -type d -ctime +10 | xargs rm -rf 

Which is a bit more efficient, because it amounts to:

rm -rf dir1; rm -rf dir2; rm -rf dir3; . 

With modern versions of find , you can replace the ; with + and it will do the equivalent of the xargs call for you, passing as many files as will fit on each exec system call:

find . -type d -ctime +10 -exec rm -rf <> + 

-mtime was better for me as it checks content changes rather than permission changes, otherwise this was perfect.

Читайте также:  Ocr tesseract astra linux

The more efficient approach can backfire if you have too many folders to delete: stackoverflow.com/questions/11289551/…. For the same reason, in order to avoid deletion of the base folder it’s better to use -mindepth 1 (rather than /path/to/folder/* ).

If you want to delete all subdirectories under /path/to/base , for example

/path/to/base/dir1 /path/to/base/dir2 /path/to/base/dir3 

but you don’t want to delete the root /path/to/base , you have to add -mindepth 1 and -maxdepth 1 options, which will access only the subdirectories under /path/to/base

-mindepth 1 excludes the root /path/to/base from the matches.

-maxdepth 1 will ONLY match subdirectories immediately under /path/to/base such as /path/to/base/dir1 , /path/to/base/dir2 and /path/to/base/dir3 but it will not list subdirectories of these in a recursive manner. So these example subdirectories will not be listed:

/path/to/base/dir1/dir1 /path/to/base/dir2/dir1 /path/to/base/dir3/dir1 

So , to delete all the sub-directories under /path/to/base which are older than 10 days;

find /path/to/base -mindepth 1 -maxdepth 1 -type d -ctime +10 | xargs rm -rf 

Источник

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

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

find /volume1/Test -cmin +$storetime -delete 

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

find /volume1/Test -mtime +10 -exec rm <> \; ?

TС: добавь ключик type -f к файнду и в результате будут только файлі.

TС: добавь ключик type -f к файнду и в результате будут только файлі.

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

Illujanka ( 07.11.19 10:21:52 MSK )
Последнее исправление: Illujanka 07.11.19 10:26:37 MSK (всего исправлений: 1)

find /volume1/Test -mtime +10 -exec rm <> \; ? 

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

Illujanka ( 07.11.19 10:23:13 MSK )
Последнее исправление: Illujanka 07.11.19 10:25:49 MSK (всего исправлений: 1)

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

vodz ★★★★★ ( 07.11.19 10:27:24 MSK )
Последнее исправление: vodz 07.11.19 10:28:39 MSK (всего исправлений: 1)

про ключ -mindepth тебе уже писали

про ключ -mindepth тебе уже писали

Всегда удивляет в тутошних комментаторов желание решить как можно узкую задачу с возможностью появления завтра у ТСа еще вопроса, например, что делать, если в каталоге появится другие подкаталоги и rm на них ругается. Одно дело, когда универсальное требует кучу нового кода, другое дело, что правильный ответ скорее всего не -mindepth, а таки тоже уже данный «-type f»

vodz ★★★★★ ( 07.11.19 11:12:42 MSK )
Последнее исправление: vodz 07.11.19 11:14:44 MSK (всего исправлений: 1)

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

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

Читайте также:  Создание gpt разделов linux

Источник

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

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

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

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

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

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

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

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

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

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

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

sksk_001

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

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

find / home / sk / Downloads -mtime +30 -print
/home/sk/Pictures/Wallpapers /home/sk/Pictures/Wallpapers/29312450971_819c502b2e_o.jpg /home/sk/Pictures/Wallpapers/skamath-HD-Wallpapers1.jpg /home/sk/Pictures/Deepin Movie /home/sk/Pictures/smplayer_screenshots sksk_001

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

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

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

find <Path_To_Old_Files> -type f -mtime +30 | xargs rm -f
find <Path_To_Old_Files> -mtime +30 -exec rm -f <> \;
find <Path_To_Old_Files> -mtime +30 -delete;

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

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

itisgood
Как установить Android SDK Manager на Ubuntu 18.04
10 лучших способов ускорить медленный Mac

You may also like

📜 Чтение файла построчно на Bash

📧 В чем разница между IMAP и POP3

✔️ Как управлять контейнерами LXD от имени обычного.

📜 Руководство для начинающих по созданию первого пакета.

Феноменальная популярность электроники Xiaomi: основные причины

📜 Получение вчерашней даты в Bash: Практическое руководство

Использование специальных гелей при мышечных болях

🐧 Сравнение команд Printf и Echo на Linux

📦 Как расширить/увеличить файловую систему VxFS на Linux

Услуги по размещению серверного оборудования в ЦОД

Leave a Comment Cancel Reply

• Свежие записи

• Категории

• Теги

• itsecforu.ru

• Страны посетителей

IT is good

В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…

Читайте также:  Командная строка основные команды linux

В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…

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

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

Вторичное жильё выгоднее для молодых семей, желающих приобрести свою первую квартиру. Сталкиваясь с ипотечным кредитованием, можно избежать много лишней суеты и проблем, если…

Источник

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

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

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

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

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

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

find ~/Downloads -type f -mtime +35

8fsAGtAO1XbSkAAAAASUVORK5CYII=

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

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

ByZkw8E2C2n2AAAAAElFTkSuQmCC

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

7v5wAAAABJRU5ErkJggg==

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

wd2Gmddp20QPQAAAABJRU5ErkJggg==

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

8f507C0nZQ++gAAAAASUVORK5CYII=

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

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