Wie finde ich alte unbenutzte Dateien?

2

Ich möchte Platz auf meiner OS X-Festplatte schaffen, indem ich "totes Holz" identifiziere und entferne, dh Dateien, die seit langer Zeit nicht mehr verwendet wurden (z. B. länger als 2 Jahre).

Gibt es ein allgemeines Tool zum Identifizieren alter, nicht verwendeter Dateien?

(Hinweis 1: Ich kenne ein Tool zum Entfernen von Lokalisierungsdateien, aber ich suche etwas viel Allgemeineres. Ebenso kenne ich Tools zum Identifizieren großer Dateien, aber das ist im Moment nicht das, wonach ich suche .)

(Hinweis 2: Ich bin nicht an einem Tool interessiert, das die alten, nicht verwendeten Dateien, die es findet, automatisch löscht. Ich möchte die Liste der Kandidatendateien durchsuchen und alle Dateien entfernen, die ich behalten möchte, obwohl sie alt und inaktiv sind. )

Vielen Dank!

kjo
quelle

Antworten:

4

Mdfind (Spotlight) verwenden

Da OS X alles mit Spotlight indiziert, steht Ihnen ein leistungsstarkes Befehlszeilentool zur Verfügung, mit dem Sie die gewünschten Informationen finden können:

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

würde zum Beispiel alles auflisten, wofür <directory>Sie nicht geöffnet haben <days>. Sie können natürlich das weglassen, onlyinwenn Sie systemweit suchen möchten. Ich würde jedoch empfehlen, in bestimmten Verzeichnissen zu suchen.

Sie können diese Abfrage ändern mit:

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

und natürlich auch hinzufügen $time.this_week(-5), wenn Sie beispielsweise etwas möchten, das seit 5 Wochen nicht mehr geöffnet wurde. Oder in Ihrem Fall $time.this_year(-2)für etwas verwenden, das in den letzten zwei Jahren nicht verwendet wurde.

Sie können auch auf andere Attribute zugreifen:

  • kMDItemContentModificationDate (als es geändert wurde)
  • kMDItemContentCreationDate (als es erstellt wurde)

Es gibt eine Reihe weiterer Fragen, die Sie stellen können . Siehe hier für eine Liste von anderen Attributen.


Verwenden find

Eine einfache Auflistung der Dateien <directory>, die vor mehr als <d>Tagen geändert wurden:

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

Also zum Beispiel

find ~/Documents -type f -mtime +150

listet alle Ihre Dateien auf ~/Documents, die Sie seit mindestens 150 Tagen nicht geändert haben.

mtimeist die Unix-Änderungszeit einer Datei, die nicht geändert wird, wenn Sie (oder das System) sie lesen. Wenn Sie dagegen Dateien auflisten möchten, die in den letzten 150 Tagen geändert wurden , verwenden Sie -150statt +150.

Genau so mtimegibt es auch atime, was die letzte Zugriffszeit bezeichnet. Gleiche Syntax:

find ~/Documents -type f -atime +150

Aber ich bin mir nicht sicher, ob es zu genau ist. Zumindest unter OS X scheint Spotlight hier die bessere Option zu sein.

slhck
quelle
Dies wird wahrscheinlich Hunderte von Systemdateien auswählen, die gelesen und nicht geändert werden.
pberlijn
Nein, das ist was mtimefür die ("modifizierte" Zeit). Das Lesen einer Datei ändert nichts an ihrer mtime.
Slhck
Ja, das war mein Punkt. Es scheint, dass er darum bittet, Dateien zu löschen, die "nicht verwendet" wurden. Das Lesen einer Datei verwendet sie immer noch. Ergo findet mtime keine 'unbenutzten' Dateien.
pberlijn
@pberlijn Oh, richtig. Meine Antwort wurde aktualisiert.
Slhck
3

Wählen Sie dazu im Finder den Ordner aus, den Sie durchsuchen möchten (z. B. Ihr Home-Verzeichnis), und drücken Sie Cmd-F.

Halten OptionSie die ...Taste gedrückt und klicken +Sie sie an, wenn Sie sie nicht drücken. Sie befindet sich Optionrechts neben dem Prädikat-Editor (der Leiste mit den Suchkriterien).

Wählen Sie keine , wo es heißt jeder für den neuen Kriterien Block, und wählen Sie entweder Zuletzt geöffnet Datum (wahrscheinlich Standard) oder Datum der letzten Änderung in der nächsten Zeile. Geben Sie dann Ihren gewünschten Zeitraum ein. Es sollte ungefähr so ​​aussehen:

Bildbeschreibung hier eingeben

Sie müssen keinen Suchausdruck eingeben, sondern es werden nur die Dateien aufgelistet, die seit einiger Zeit nicht geändert wurden.

Dies aus dem Finder heraus zu tun hat den Vorteil, dass es sehr einfach ist, zusätzliche Kriterien hinzuzufügen und die resultierenden Dateien zu sortieren und anzuzeigen.

In dieser Antwort erfahren Sie, wie Sie die Größenspalte zur Spotlight-Ergebnisliste hinzufügen , um alte und große Dateien selektiv zu löschen .

Daniel Beck
quelle
Oh, +1. Ich bin so begeistert vom Terminal, dass ich vergessen habe, dass es diese UI-Funktion hat. D'oh.
Slhck
@slhck Danke. Es ist jedoch leicht zu vergessen;) - Könnten Sie überprüfen, ob das Datum der letzten Öffnung (zumindest mit dieser Methode) fehlerhaft ist? Ich finde mehrere neuere Dateien, die geschrieben, aber nie wieder geöffnet wurden. In der Spalte " Zuletzt geöffnet" steht zwar " Heute" , aber es ist trotzdem ein Ergebnis.
Daniel Beck
@ Daniel Ich bin nicht 100% sicher, aber nach allem, was ich versucht habe, zu urteilen, scheinen die Ergebnisse vernünftig zu sein. Zumindest halte ich sie für nützlich :)
slhck
@slhck Also hast du dieses Problem nicht ?
Daniel Beck
1
@slhck Nun, ich mache mir keine allzu großen Sorgen um den Wert in der Liste, sondern vielmehr darum, dass sie in der Ergebnisliste stehen. Außerdem würden Sie erwarten, dass sie verschwinden, wenn Sie das Kriterium " Zuletzt geändert" hinzufügen , sie werden jedoch weiterhin angezeigt. Zuletzt geöffnet entfernen (nur zuletzt geändert lassen ) und sie verschwinden. Es scheint, dass das Datum der letzten Eröffnung lächerlich nutzlos ist.
Daniel Beck
0

Scheinwerfer.

Geben Sie einen Platzhalter für den zu löschenden Dateityp (oder einen allgemeinen Platzhalter) ein und fügen Sie das Attribut "Datum der letzten Öffnung" hinzu. Stellen Sie dies nach Ihren Wünschen ein.

Achten Sie darauf, was Sie löschen.

pberlijn
quelle