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

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

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

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

1 ответ1

3

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

Нажмите клавишу 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .