Инструмент Filelight/TreeSize/DiskUsage, но для дат?

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

Я запустил проверку использования диска, и у меня есть обоснованное подозрение, что мы можем сэкономить много места на диске, удалив устаревшие данные. Но получить представление об использовании диска по дате последнего изменения - интересная задача, на которую я не смог найти ответ.

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

Обновление: это для Linux, но нет тега для "универсального Linux" (только Mint, Kali и некоторые другие).

1 ответ

Решение

Откройте проводник и перейдите к общей папке.

Нажмите клавишу F3 на клавиатуре, вы увидите в раскрывающемся меню поля поиска, нажмите на
Date modified: под Add a search filter и выберите фильтр времени, как вам нужно. Вы можете выбрать критерии поиска из предопределенных шаблонов или ввести в поле поиска диапазон дат:

datemodified:‎1/‎1/‎2000 .. ‎8/‎22/‎2018

Если вам нужно найти файлы / папки, которые не были изменены после некоторой даты, вы можете использовать < персонаж перед датой:

datemodified:‎<1/‎1/‎2010

Он найдет рекурсивно все файлы и папки старше 1/1/2010

Когда проводник прекратит поиск, переключите вид на Details и нажмите на колонку Date modified сортировать найденные файлы и папки и удалять те, которые вам больше не нужны.

Вы также можете искать по accessed или же created дата с использованием поискового фильтра как:
datecreated:
dateaccessed:

Если вы хотите автоматизировать удаление старого контента, вы можете использовать консольную утилиту: forfiles

Для рекурсивного удаления папок / файлов, которые не были изменены год назад и позже, из папки C:\SomeFolder:

forfiles /s /p "C:\SomeFolder" /d -365 /c "cmd /c del @path"

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

forfiles /s /p "C:\SomeFolder" /d -365  /c "cmd /c echo @path [@fdate]"

использование forfiles /? чтобы получить больше информации об этой утилите, включенной в ваши окна

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


PS Если вы хотите найти и удалить старые каталоги / файлы с помощью Linux, это намного проще:

Для просмотра старого контента:

#!/bin/sh

srcDir='/Path/to/share/'
daysAgo='360'

find "${srcDir}" \( -type f -o -type d \) -a -mtime +"${daysAgo}"

Чтобы удалить старый контент:

#!/bin/sh

srcDir='/Path/to/share/'
daysAgo='360'

find "${srcDir}" \( -type f -o -type d \) -a -mtime +"${daysAgo}" -exec rm -fd '{}' \;

Если вы хотите удалить каталоги рекурсивно, используйте rm -fdr на месте rm -fd

Другие вопросы по тегам