14.8.3. Удаление файлов по времени модификации и другим критериям

14.8.3. Удаление файлов по времени модификации и другим критериям

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

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

def delete_older(dir, time)

 Dir.chdir(dir) do

  Dir.foreach(".") do |entry|

   # Каталоги не обрабатываются.

   next if File.stat(entry).directory?

   # Используем время модификации.

   if File.mtime(entry) < time

    File.unlink(entry)

   end

  end

 end

end

delete_older("/tmp",Time.local(2001,3,29,18,38,0))

Неплохо, но можно обобщить. Создадим метод delete_if, который принимает блок, возвращающий значение true или false. И будем удалять те и только те файлы, которые удовлетворяют заданному критерию.

def delete_if(dir)

 Dir.chdir(dir) do

  Dir.foreach(".") do |entry|

   # Каталоги не обрабатываются.

   next if File.stat(entry).directory?

   if yield entry

    File.unlink(entry)

   end

  end

 end

end

# Удалить файлы длиннее 3000 байтов.

delete_if("/tmp") { |f| File.size(f) > 3000 }

# Удалить файлы с расширениями LOG и BAK.

delete_if("/tmp") { |f| f =~ /(log|bak)$/i }

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Удаление файлов и папок

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

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


20.3.3. Удаление файлов в Unix необратимо

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

20.3.3. Удаление файлов в Unix необратимо Пользователи с опытом работы в системе VMS или те, кто помнит TOPS-20, часто испытывают недостаток средств для контроля версий файлов, которые были характерны для этих систем. Открытие существующего файла для записи или удаления


Удаление файлов занятий

Из книги Microsoft Windows SharePoint Services 3.0. Русская версия. Главы 9-16 автора Лондер Ольга

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


20.3.3. Удаление файлов в Unix необратимо

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

20.3.3. Удаление файлов в Unix необратимо Пользователи с опытом работы в системе VMS или те, кто помнит TOPS-20, часто испытывают недостаток средств для контроля версий файлов, которые были характерны для этих систем. Открытие существующего файла для записи или удаления фактически


Удаление ненужных временных файлов с жесткого диска

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

Удаление ненужных временных файлов с жесткого диска В результате некорректного завершения приложений на жестком диске часто остаются "бесхозные" временные файлы (с расширением tmp), которые затем приходится удалять вручную. Весьма удобно было бы удалять все такие файлы


Сортировка по нескольким критериям

Из книги XSLT автора Хольцнер Стивен

Сортировка по нескольким критериям Стоит отметить, что при сортировке можно применять несколько критериев — для этого просто примените несколько элементов <xsl:sort>. Первый элемент <xsl:sort> отсортирует данные по основному критерию, следующий элемент — по следующему


11.4.4. Удаление файлов

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

11.4.4. Удаление файлов Удаление файла — это удаление указателя на его inode и удаление содержимого файла, если не остается ни одой жесткой ссылки на него. Если любой процесс держит файл открытым, то inode этого файла предохраняется до тех пор, пока финальный процесс не закроет


Копирование, изменение и удаление файлов

Из книги VBA для чайников автора Каммингс Стив

Копирование, изменение и удаление файлов С помощью подходящих методов объект File можно скопировать, переместить или удалить:objFilel.Сору "с:героические усилия"objFilel.Move "с:минимальные результаты"objFile l.DeleteЗаметьте, что если вы не меняете имя файла, в операторах, использующих


12.2 Копирование, перемещение и удаление файлов

Из книги Руководство по переходу на Ubuntu 10.04 LTS «Lucid Lynx» автора Неворотин Вадим

12.2 Копирование, перемещение и удаление файлов Хоть я и обещал не объяснять основы использования компьютера, позволю вам напомнить несколько полезных сочетаний клавиш, используемых для управления файлами и папками:• Ctrl—C — копировать выделенные объекты в буфер


4.2.4. Удаление файлов и папок. Корзина

Из книги Первые шаги с Windows 7. Руководство для начинающих автора Колисниченко Денис Н.

4.2.4. Удаление файлов и папок. Корзина Удалить файл (папку) очень просто — щелкните на нем правой кнопкой мыши и выберите команду Удалить (или нажмите клавишу <Del> на клавиатуре). Можно удалить сразу группу файлов и папок: для этого сначала выделите группу объектов, а затем


Пример 28-1. Удаление cookie-файлов

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Пример 28-1. Удаление cookie-файлов if [ -f ~/.netscape/cookies ] # Удалить, если имеются.then rm -f ~/.netscape/cookiesfiln -s /dev/null ~/.netscape/cookies# Теперь, все cookie-файлы, вместо того, чтобы сохраняться на диске, будут "вылетать в трубу"./dev/zeroПодобно псевдоустройству /dev/null, /dev/zero так же является


5.1.5.1. Удаление открытых файлов

Из книги Linux программирование в примерах автора Роббинс Арнольд

5.1.5.1. Удаление открытых файлов С самых первых дней Unix было возможно удалять открытые файлы. Просто вызовите unlink() с именем файла после успешного вызова open() или creat().На первый взгляд, это кажется странным. Поскольку система освобождает блоки данных, когда счетчик ссылок на


Удаление файлов и папок

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

Удаление файлов и папок С помощью команд rundll32.exe можно удалить каталог или файл. Для этого достаточно воспользоваться приведенной далее командой: rundll32.exe ADVPACK.dll, DelNodeRunDLL32 «путь к кaтaлогу или файлу». Функция DelNodeRunDLL32 была написана специально для вызова с помощью команды


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

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

Удаление файлов Удаление файлов напоминает их копирование, поэтому рассмотрим этот процесс лишь поверхностно — в подсказках к листингу 15.8. Для определения блоков, содержащих описания удаляемых файлов, используется ключевое слово DelFiles.Листинг 15.8. Удаление


12.5. Удаление файлов и каталогов

Из книги Как приручить компьютер за несколько часов автора Ремнева Ирина

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


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

Из книги автора

Удаление файлов Если определенные файлы становятся ненужными, их можно выбросить в корзину (не в прямом смысле, конечно). Как это сделать?1) Отметим объекты, которые необходимо удалить.2) Щелкнем правой кнопкой мыши на одном из отмеченных значков и выберем в появившемся