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

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

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

Я провел сканирование использования диска, и у меня есть обоснованное подозрение, что мы можем сэкономитьнагрузкидискового пространства путем очистки устаревших данных. Но получение обзора disk-usage-by-last-modified — это интересная задача, на которую я не смог придумать ответ.

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

Обновление: это для Linux, но тега для «generic 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 /?для получения дополнительной информации об этой утилите, входящей в состав вашей Windows.

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


P.S. Если вы хотите найти и удалить старые каталоги/файлы с помощью 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

Связанный контент