Czy istnieje sposób na ograniczenie rozmiaru Kosza?


12

Właśnie skończyło mi się miejsce na dysku i mam 15 GB w koszu. Czy istnieje sposób, aby nie przechowywać przedmiotów starszych niż powiedzmy 7 dni lub ograniczyć rozmiar Kosza?

Potrzebuję sposobu na automatyczne zarządzanie tym.

Odpowiedzi:


12

Kosz to tylko specjalny folder (katalog), który Apple tworzy i zarządza za pomocą Findera, dzięki czemu masz możliwość łatwego „przywrócenia” elementów (poprzez usunięcie ich z Kosza) przed pełnym usunięciem (Opróżnij Kosz). Ponieważ ten mechanizm jest po prostu katalogiem na dysku startowym, technicznie masz całe miejsce na dysku startowym do wykorzystania w Koszu, jeśli chcesz.

Jeśli chcesz mieć miarę „automatycznego usuwania” plików starszych niż 7 dni, możesz użyć prostego skryptu bash:

find ~/.Trash -mtime +7 -exec /bin/rm -rf {} \;

Używając ulubionego edytora tekstu, wklej powyższą linię do nowego pliku, a następnie zapisz plik jako empty_trash_older_than_7_days.sh. W terminalu należy użyć chmodpolecenia, aby było ono wykonalne jako takie:chmod +x /path/to/empty_trash_older_than_7_days.sh

To polecenie, po uruchomieniu w terminalu, znajdzie wszystkie pliki w Koszu (tylko pliki z woluminu startowego - więcej o tym za minutę), które są starsze niż 7 dni (od momentu uruchomienia tego polecenia) i przejdą każdy plik do rm -rfpolecenia. Ponieważ rmjest to polecenie uniksowe i nie ma pojęcia o Koszu, usuwa tylko uniksowe usuwanie, które dla naszych celów jest prawdziwym usunięciem (jak Opróżnianie Kosza).

Następnie możesz użyć crona (jeśli nie znasz Crona, sprawdź dobrą pozycję Crona na wikipedii ), aby skonfigurować cykliczne wykonywanie tego skryptu.

Osobiście moim głosowaniem jest po prostu wytrenowanie się w używaniu Empty Trashpozycji menu co kilka minut, dni, tygodni?

PS, jeśli cały ten unix-ese jest zbyt przerażający, założę się, że istnieją proste aplikacje dla komputerów Mac, które ludzie napisali, aby robić takie rzeczy. Mam nadzieję, że ktoś z pewną wiedzą na temat jednego lub więcej tego rodzaju aplikacji może zaoferować odpowiedź lub dwie jako przeciwwagę.

Powodzenia!

PS Zapomniałem mówić o woluminie innym niż startowy ... Jeśli usuniesz plik z woluminu INNEGO niż wolumin startowy, plik ten przejdzie do folderu .Trash na tym woluminie. Na przykład, jeśli masz wolumin o nazwie Foo, folder .Trash będzie w /Volumes/Foo/.Trash. To, co udokumentowałem powyżej, nie spowoduje usunięcia tych plików. Będziesz musiał skonfigurować coś podobnego dla każdego woluminu.


2
OS X ma findrównież -deleteflagę, dzięki której można użyć find ~/.Trash -mtime +7 -delete. Daty modyfikacji nie są dobrym wskaźnikiem tego, kiedy pliki zostały usunięte. Nie wiem jednak, jak uzyskać dostęp do daty usunięcia metadanych wyświetlanych w Finderze.
Lri

Zgadzam się z powyższym komentarzem ... Chociaż jest to fajny skrypt, w praktyce usuwa rzeczy przed zmodyfikowaną datą. Dlatego jeśli teraz wyrzucę folder starych rzeczy, a następnie uruchomię skrypt natychmiast, większość rzeczy z tego folderu zostanie usunięta. Byłoby dobrze, gdybyśmy mogli znaleźć parametr daty usuniętej w pliku.
Jowie

@Jowie możemy użyć -atime, który jest czasem ostatniego dostępu. Nawiasem mówiąc, istnieje inny problem - pozostawia puste katalogi w Koszu ...
Nazwa wyświetlana

3

Hazel można skonfigurować tak, aby zarówno przechowywał pliki przez określony czas, jak i utrzymywał kosz poniżej określonego rozmiaru. Możesz także dodać niestandardowe reguły dotyczące natychmiastowego usuwania dużych plików lub usuwania plików w folderach kosza na innych woluminach.


0

John Wiegley znajduje dirscan , w szczególności na cleanup.pyprzykład, jest zaprojektowany do radzenia sobie z problemami zidentyfikowanymi przy użyciu podejścia find. dirscanzapewnia bardziej ogólne rozwiązanie, ponieważ umożliwia skonfigurowanie skanowania / czyszczenia różnych katalogów na różne sposoby.

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.