Инструмент 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