Вы специально ищете терминальную команду, или будет достаточно чего-то вроде действия automator?
Джерри В.
1
Что вы подразумеваете под "чьи даты добавляются?" Добавил что и как?
Аллан
1
@Allan Проверьте «Вид> Упорядочить по» или столбцы, доступные в «Параметры просмотра» в Finder; OS X отслеживает дату, когда элемент был добавлен в папку.
Майлз
@Miles - эти атрибуты недоступны в bash, пока вы не установите инструменты XCode Dev и специально используемый OP ~ / Downloads, что является соглашением bash (или, в более общем смысле, оболочкой).
Аллан
Ответы:
24
Это относительно простая команда для удаления файлов в каталоге более одного года. Например, следующая команда выполняется в терминале
find ~/Downloads/ -type f -mtime +365 -exec rm {} \;
удалит все файлы в ~/Downloadsкаталоге старше одного года.
find это команда, которая ищет "вещи"
-type fговорит найти что искать, в этом случае файлы
-mtime +365 говорит найти, что измененное время должно быть больше 365 дней
-exec rm {} передает (выполняет) каждый «найденный» элемент в команду rm
Что мне нравится делать, так это проверять, исключая -exec rm {} \;порцию, и убедиться, что я получаю правильные результаты. Как только я уверен, я просто добавляю это, чтобы закончить удаление.
Одна оговорка !! Эти файлы не добавляются в вашу корзину. Команда обходит корзину и сразу удаляется, поэтому используйте ее с осторожностью.
Более безопасный путь ...
(Спасибо пользователю lucasoldaini в комментариях ниже)
Если вы хотите переместить ваши файлы в «Корзину», просто замените -exec rm {} \;часть на-exec mv {} ~/.Trash \;
Они останутся в вашей корзине, пока вы в следующий раз не очистите ее.
Вы можете получить больше информации о каждой команде, просматривая их справочные страницы:
Вместо того, чтобы использовать rm, вы можете переместить файлы в~/.Trash чтобы предотвратить их немедленное удаление.
lucasoldaini
2
Обратите внимание, что дата изменения (над которой работает этот ответ) отличается от даты добавления . Кроме того, Safari установит дату модификации загруженного файла на дату, предоставленную сервером, если таковая имеется, поэтому даже файл, загруженный вчера, может иметь дату модификации более года.
Майлз
2
Если у вас есть homebrew: brew install trash и вместо этого rm теперь используйте команду trash.
Kyslik
Я обновил свой ответ, основываясь на предложении @lucasoldaini, которое я предпочитаю использовать встроенными методами, а не домашним пивом или MacPorts.
Аллан
1
Мне нравится ваше решение больше, чем мое.
Джерри В.
10
Если вы хотите использовать Automator, вы можете создать действие так:
Поиск элементов Finder - Поиск загрузок - Все перечисленное верно: -Дата создана не за последние 365 дней.
Мой выбор инструмента - Hazel , недорогая многоцелевая программа, которая работает с файлами и папками, когда они соответствуют определенным правилам, которые вы установили. Это правило будет перемещать файлы, не добавленные в прошлом году, из папки Hämtade filer . Решение отличается от решения для командной строки, описанного выше, так как оно запускается каждый день, поэтому это решение для установки и забывания.
Это лучшее решение, поскольку на самом деле используется Дата добавления, а не Дата изменения, которая может не совпадать. Командная строка , решение может отыскать kMDItemDateAddedв mdlsно я настоятельно рекомендую решение Hazel вместо этого.
Ответы:
Это относительно простая команда для удаления файлов в каталоге более одного года. Например, следующая команда выполняется в терминале
find ~/Downloads/ -type f -mtime +365 -exec rm {} \;
удалит все файлы в
~/Downloads
каталоге старше одного года.find
это команда, которая ищет "вещи"-type f
говорит найти что искать, в этом случае файлы-mtime +365
говорит найти, что измененное время должно быть больше 365 дней-exec rm {}
передает (выполняет) каждый «найденный» элемент в командуrm
Что мне нравится делать, так это проверять, исключая
-exec rm {} \;
порцию, и убедиться, что я получаю правильные результаты. Как только я уверен, я просто добавляю это, чтобы закончить удаление.Одна оговорка !! Эти файлы не добавляются в вашу корзину. Команда обходит корзину и сразу удаляется, поэтому используйте ее с осторожностью.
Более безопасный путь ...
(Спасибо пользователю lucasoldaini в комментариях ниже)
Если вы хотите переместить ваши файлы в «Корзину», просто замените
-exec rm {} \;
часть на-exec mv {} ~/.Trash \;
Они останутся в вашей корзине, пока вы в следующий раз не очистите ее.
Вы можете получить больше информации о каждой команде, просматривая их справочные страницы:
man find
man exec
источник
rm
, вы можете переместить файлы в~/.Trash
чтобы предотвратить их немедленное удаление.Если вы хотите использовать Automator, вы можете создать действие так:
Поиск элементов Finder - Поиск загрузок - Все перечисленное верно: -Дата создана не за последние 365 дней.
Получить выбранные элементы Finder
Переместить элементы поиска в корзину
Удобный скриншот:
источник
Мой выбор инструмента - Hazel , недорогая многоцелевая программа, которая работает с файлами и папками, когда они соответствуют определенным правилам, которые вы установили. Это правило будет перемещать файлы, не добавленные в прошлом году, из папки Hämtade filer . Решение отличается от решения для командной строки, описанного выше, так как оно запускается каждый день, поэтому это решение для установки и забывания.
источник
kMDItemDateAdded
вmdls
но я настоятельно рекомендую решение Hazel вместо этого.