Jak mogę użyć polecenia, aby usunąć wszystkie pliki w Pobranych, których dodane daty są dłuższe niż 1 rok?


12

Używam komputera Mac. Jak mogę użyć polecenia, aby usunąć wszystkie pliki, ~/Downloadsktórych daty dodania są dłuższe niż 1 rok?


1
Czy szukasz komendy terminalowej, czy może wystarczyłoby coś takiego jak akcja automatyzacji?
Jerry W.

1
Co rozumiesz przez „czyje daty zostały dodane?” Dodano do czego i jak?
Allan

1
@ Allan Zaznacz „Widok> Rozmieść według” lub kolumny dostępne w „Opcjach widoku” w Finderze; OS X śledzi datę dodania elementu do folderu.
Mil

@Miles - te atrybuty nie są dostępne w bash, chyba że zainstalujesz narzędzia XCode Dev, a OP specjalnie użyje ~ / Downloads, co jest konwencją bash (lub bardziej ogólnie mówiąc, powłoką).
Allan

Odpowiedzi:


24

Jest to stosunkowo proste polecenie do usuwania plików w katalogu dłuższym niż rok. Na przykład następujące polecenie wykonane w terminalu

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

usunie wszystkie pliki w ~/Downloadskatalogu starsze niż rok.

  • find to polecenie, które wyszukuje „rzeczy”

  • -type fmówi znaleźć, czego szukać, w tym przypadku plików

  • -mtime +365 informuje, że zmodyfikowany czas powinien być dłuższy niż 365 dni

  • -exec rm {} przekazuje (wykonuje) każdy „znaleziony” element do polecenia rm

Lubię to przetestować, wykluczając -exec rm {} \;porcję i upewnić się, że otrzymuję prawidłowe wyniki. Kiedy jestem pewien, po prostu dodaję go, aby zakończyć usuwanie.

Jedno zastrzeżenie !! Te pliki nie są dodawane do „Kosza”. Polecenie omija Kosz i jest natychmiast usuwane, więc używaj go ostrożnie.


Bezpieczniejszy sposób ...

(Dzięki użytkownikowi lucasoldaini w komentarzach poniżej)

Jeśli chcesz przenieść swoje pliki do „Kosza”, po prostu zamień -exec rm {} \;część na-exec mv {} ~/.Trash \;

Pozostaną w twoim Koszu do następnego razu, gdy go opróżnisz.

Możesz uzyskać więcej informacji na temat każdego polecenia, przeglądając ich strony podręcznika:


6
Zamiast używać rm, możesz przenieść pliki, ~/.Trashaby zapobiec ich natychmiastowemu usunięciu.
lucasoldaini 24.04.16

2
Pamiętaj, że data modyfikacji (na której działa ta odpowiedź) różni się od daty dodania . Ponadto Safari ustawi datę modyfikacji pobranego pliku na datę podaną przez serwer, jeśli jest dostępna, więc nawet plik pobrany wczoraj może mieć datę modyfikacji większą niż rok.
Mil

2
Jeśli masz homebrew: brew zainstaluj trash, a zamiast tego rm użyj polecenia trash od teraz.
Kyslik,

Zaktualizowałem swoją odpowiedź na podstawie sugestii @lucasoldaini. Wolę używać metod wbudowanych niż homebrew lub MacPorts.
Allan,

1
Lubię twoje rozwiązanie bardziej niż moje.
Jerry W.,

10

Jeśli chcesz korzystać z Automatora, możesz zbudować takie działanie:

Znajdź elementy Findera - Wyszukaj pliki do pobrania - spełnione są wszystkie poniższe warunki: -Data utworzenia nie jest w ciągu ostatnich 365 dni.

Zdobądź wybrane przedmioty Findera

Przenieś przedmioty Findera do Kosza

Wygodny zrzut ekranu: Działania automatora


7

Moim wyborem narzędzia jest Hazel , niedrogie, uniwersalne oprogramowanie, które robi rzeczy z plikami i folderami, gdy są one zgodne z określonymi przez ciebie regułami. Ta reguła przenosi pliki, które nie zostały dodane w zeszłym roku z folderu Hämtade filer . W odróżnia się od powyższego rozwiązania wiersza polecenia, ponieważ jest uruchamiane codziennie, więc jest to rozwiązanie gotowe i zapomnij. Zrzut ekranu panelu wstępnego Hazel


To najlepsze rozwiązanie, ponieważ w rzeczywistości wykorzystuje datę dodaną, a nie datę modyfikacji, co może nie być takie samo. Rozwiązanie wiersza polecenia może wyglądać na kMDItemDateAddedw mdlsale bardzo polecam rozwiązanie Hazel zamiast.
TJ Luoma
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.