Як я можу використовувати команду для видалення всіх файлів із завантажень, додані дати перевищують 1 рік?


12

Я використовую Mac. Як я можу використовувати команду для видалення всіх файлів, у ~/Downloadsяких додані дати перевищують 1 рік?


1
Ви спеціально шукаєте термінальну команду, або щось на зразок дії автоматизатора буде достатньо?
Джеррі В.

1
Що ви маєте на увазі під "чиї дати додані?" Додано до чого і як?
Аллан

1
@Allan Поставте прапорець "Переглянути> Упорядкувати за" або стовпці, доступні в "Параметри перегляду" в Finder; OS X відстежує дату, коли елемент був доданий до папки.
Майлз

@Miles - ці атрибути недоступні в bash, якщо ви не встановите інструменти XCode Dev та спеціально використовуваний OP ~ / Downloads, що є bash (або загалом - оболонки) умовою.
Аллан

Відповіді:


24

Це відносно проста команда для видалення файлів у каталозі, що перевищує один рік. Наприклад, наступна команда, виконана в Terminal

find ~/Downloads/ -type f -mtime +365 -exec rm {} \;

видалить усі файли в ~/Downloadsкаталозі, старші одного року.

  • find це команда, яка шукає "речі"

  • -type fповідомляє знайти, що шукати, у цьому випадку файли

  • -mtime +365 повідомляє виявити, що модифікований час повинен перевищувати 365 днів

  • -exec rm {} передає (виконує) кожен "знайдений" елемент команді rm

Що я люблю робити, це перевірити його, виключивши -exec rm {} \;порцію і переконайтесь, що я отримую правильні результати. Як тільки я впевнений, я просто додаю його, щоб завершити видалення.

Один Caveat !! Ці файли не додаються у ваш "Кошик". Команда обходить кошик і негайно видаляється, тому використовуйте обережно.


Більш безпечний спосіб ...

(Завдяки користувачу lucasoldaini в коментарях нижче)

Якщо ви хочете перемістити свої файли в "Кошик", просто замініть його -exec rm {} \;на-exec mv {} ~/.Trash \;

Вони залишаться у вашому кошику до наступного разу, коли ви його не очистите.

Ви можете отримати більше інформації про кожну команду, переглянувши їх довідкові сторінки:


6
Замість використання rmви можете перемістити файли, ~/.Trashщоб запобігти їх негайному видаленню.
lucasoldaini

2
Зауважте, що змінена дата (на яку працює ця відповідь) відрізняється від дати, що додана . Крім того, Safari встановить дату модифікації завантаженого файлу до тієї, яку надає сервер, якщо така є, тому навіть файл, завантажений вчора, може мати дату зміни більше року.
Майлз

2
Якщо у вас є домашня мова: заваріть інсталяцію сміття, а замість цього rm використовуйте команду trash відтепер.
Кислик

Я оновив свою відповідь на підставі пропозиції @lucasoldaini. Я вважаю за краще використовувати вбудовані методи, а не використовувати домашню мову або MacPorts.
Аллан

1
Мені подобається ваше рішення більше, ніж моє.
Джеррі В.

10

Якщо ви хочете використовувати Автоматизатор, ви можете скласти таку дію:

Find Finder items - Пошук завантажень - Усі наступні дійсні: -Дати створено не за останні 365 днів.

Отримати вибрані елементи Finder

Переміщення елементів пошуку в кошик

Зручний знімок екрана: Дії автоматизатора


7

Мій інструмент вибору - це Hazel , багатоцільовий багатофункціональний програмний продукт, який робить файли та папки, коли вони відповідають певним правилам, які ви встановили. Це правило буде переміщувати файли, не додані минулого року, з папки Fämtade file . У відрізняється від рішення командного рядка вище тим, що він працює щодня, тому його набір і забудьте рішення. Знімок екрана попередньої панелі Hazel


Це найкраще рішення, оскільки воно фактично використовує додану дату, а не дату модифікації, яка може бути не однаковою. Командний рядок , рішення може відшукати kMDItemDateAddedв mdlsале я настійно рекомендую рішення Hazel замість цього.
TJ Luoma
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.