2

Я хочу освободить место на моем жестком диске OS X, идентифицируя и удаляя "мертвую древесину", то есть файлы, которые не использовались в течение длительного времени (скажем, более 2 лет).

Существует ли общий инструмент для определения старых, неиспользуемых файлов?

(Примечание 1: я знаю инструмент для удаления файлов локализации, но я ищу что-то гораздо более общее, чем это. Кроме того, я знаю инструменты для идентификации больших файлов, но это не то, что я сейчас ищу.)

(Примечание 2: меня не интересует инструмент, который автоматически удаляет старые, неиспользуемые файлы, которые он находит; я хочу иметь возможность сканировать список файлов-кандидатов и удалять все, что я хочу сохранить, несмотря на то, что они старые и неактивные.)

Спасибо!

3 ответа3

4

Использование mdfind (Spotlight)

Поскольку OS X индексирует все, используя Spotlight, у вас есть очень мощный инструмент командной строки, чтобы найти то, что вам нужно:

mdfind -onlyin <directory> 'kMDItemLastUsedDate <= $time.today(-<days>)'

например, перечислите все в <directory> который вы не открывали в течение <days> . Конечно, вы можете оставить только onlyin если вы хотите искать в масштабе всей системы. Однако я бы порекомендовал заглянуть в конкретные каталоги.

Вы можете изменить этот запрос с помощью:

  • $time.this_week
  • $time.this_month
  • $time.this_year

и, конечно, также добавьте $time.this_week(-5) , например, если вы хотите что-то, что не было открыто в течение 5 недель. Или, в вашем случае, используйте $time.this_year(-2) для чего-то, что не использовалось в последние два года.

Также вы можете получить доступ к другим атрибутам:

  • kMDItemContentModificationDate (когда он был изменен)
  • kMDItemContentCreationDate (когда он был создан)

Есть ряд других запросов, которые вы можете сделать. Смотрите здесь список других атрибутов.


Используя find

Простой список файлов в <directory> , которые были изменены более <d> дней назад:

find <directory> -type f -mtime +<d>

Так, например

find ~/Documents -type f -mtime +150

перечисляет все ваши файлы в ~/Documents которые вы не изменяли в течение как минимум 150 дней.

mtime - это время модификации файла Unix, которое не изменяется, когда вы (или система) его читаете . И наоборот, если вы хотите получить список файлов , которые были изменены в течение последних 150 дней, вы будете использовать -150 вместо +150

Так же, как и mtime , есть также atime , который обозначает время последнего доступа. Тот же синтаксис:

find ~/Documents -type f -atime +150

Но я не уверен, что это слишком точно. По крайней мере, на OS X, Spotlight кажется лучшим вариантом здесь.

3

Чтобы сделать это в Finder, выберите папку, которую вы хотите найти (например, ваш домашний каталог) и нажмите Cmd-F .

Удерживайте Option и нажмите кнопку ... (которая является кнопкой + , когда вы не нажимаете Option) справа от редактора предикатов (панель с критериями поиска).

Выберите ни где он говорит , что любой новый критерий блок, а также выбрать последнюю открытую Дату (вероятно , по умолчанию) или дату последнего изменения в следующей строке. Затем введите желаемый диапазон времени. Это должно выглядеть примерно так:

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

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

Посмотрите этот ответ о том, как добавить столбец размера в список результатов Spotlight, чтобы выборочно удалять старые и большие файлы.

0

Прожектор.

Введите подстановочный знак для типа файлов, которые вы хотите удалить (или общий подстановочный знак), и добавьте атрибут «Дата последнего открытия». Установите это по своему вкусу.

Будьте осторожны, что вы удаляете.

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