Wie kann ich mit einem Befehl alle Dateien in Downloads löschen, deren Hinzufügungsdatum mehr als 1 Jahr beträgt?


12

Ich benutze einen Mac. Wie kann ich mit einem Befehl alle Dateien löschen, ~/Downloadsderen Hinzufügungsdatum mehr als 1 Jahr beträgt?


1
Suchen Sie speziell nach einem Terminalbefehl oder würde eine Automator-Aktion ausreichen?
Jerry W.

1
Was meinst du mit "deren Daten hinzugefügt werden?" Was und wie hinzugefügt?
Allan

1
@Allan Aktivieren Sie "Ansicht> Anordnen nach" oder die in "Ansichtsoptionen" im Finder verfügbaren Spalten. OS X verfolgt das Datum, an dem ein Element einem Ordner hinzugefügt wurde.
Meilen

@Miles - Diese Attribute sind in bash nur verfügbar, wenn Sie die XCode Dev-Tools und das speziell verwendete OP ~ / Downloads installieren. Hierbei handelt es sich um eine bash-Konvention (oder allgemeiner eine Shell-Konvention).
Allan

Antworten:


24

Es ist ein relativ einfacher Befehl, Dateien in einem Verzeichnis zu löschen, das länger als ein Jahr dauert. Zum Beispiel der folgende Befehl, der im Terminal ausgeführt wird

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

löscht alle Dateien im ~/DownloadsVerzeichnis, die älter als ein Jahr sind.

  • find ist der Befehl, der nach "Zeug" sucht

  • -type fTells finden, wonach gesucht werden soll, in diesem Fall Dateien

  • -mtime +365 Tells Find, dass die geänderte Zeit länger als 365 Tage sein sollte

  • -exec rm {} Übergibt (führt) jedes "gefundene" Element an den Befehl rm

Ich teste es gerne aus, indem -exec rm {} \;ich den Teil ausschließe und stelle sicher, dass ich die richtigen Ergebnisse erhalte. Sobald ich sicher bin, füge ich es einfach hinzu, um das Entfernen abzuschließen.

Eine Einschränkung !! Diese Dateien werden nicht zu Ihrem "Papierkorb" hinzugefügt. Der Befehl umgeht den Papierkorb und wird sofort gelöscht. Seien Sie also vorsichtig.


Ein sicherer Weg ...

(Dank an Benutzer lucasoldaini in den Kommentaren unten)

Wenn Sie Ihre Dateien in den "Papierkorb" verschieben möchten, ersetzen Sie einfach die -exec rm {} \;Portion in-exec mv {} ~/.Trash \;

Sie verbleiben in Ihrem Papierkorb, bis Sie ihn das nächste Mal leeren.

Sie können weitere Informationen zu jedem Befehl erhalten, indem Sie die entsprechenden Manpages anzeigen:


6
Anstatt zu verwenden rm, können Sie die Dateien verschieben, um ~/.Trashzu verhindern, dass sie sofort gelöscht werden.
Lucasoldaini

2
Beachten Sie, dass das Änderungsdatum (an dem diese Antwort ausgeführt wird) nicht das hinzugefügte Datum ist . Darüber hinaus setzt Safari das Änderungsdatum einer heruntergeladenen Datei auf das vom Server bereitgestellte Datum, sofern verfügbar, sodass selbst eine gestern heruntergeladene Datei ein Änderungsdatum von mehr als einem Jahr aufweisen kann.
Meilen

2
Wenn Sie Homebrew haben: Brühen Sie den Papierkorb installieren und verwenden Sie stattdessen von nun an den Papierkorbbefehl.
Kyslik

Ich habe meine Antwort auf der Grundlage des Vorschlags von @lucasoldaini aktualisiert. Ich bevorzuge es, eingebaute Methoden zu verwenden, anstatt Homebrew oder MacPorts zu verwenden.
Allan

1
Ich mag deine Lösung mehr als meine.
Jerry W.

10

Wenn Sie Automator verwenden möchten, können Sie eine Aktion wie folgt erstellen:

Finder-Elemente suchen - Downloads suchen - Alle folgenden Angaben sind zutreffend: - Erstellungsdatum liegt nicht in den letzten 365 Tagen vor.

Ausgewählte Finder-Objekte abrufen

Finder-Objekte in den Papierkorb verschieben

Praktischer Screenshot: Automator-Aktionen


7

Als Tool habe ich Hazel gewählt , eine kostengünstige Mehrzweck-Software, die Dinge an Dateien und Ordnern ausführt, wenn sie bestimmten von Ihnen festgelegten Regeln entsprechen. Diese Regel verschiebt Dateien, die im letzten Jahr nicht hinzugefügt wurden, aus dem Ordner Hämtade filer . In unterscheidet sich von der obigen Befehlszeilenlösung, da sie jeden Tag ausgeführt wird und daher eine Set-and-Forget-Lösung ist. Screenshot des Hazel-Einstellungsbereichs


Dies ist die beste Lösung, da tatsächlich das Datum der Aufnahme und nicht das Änderungsdatum verwendet wird, was möglicherweise nicht dasselbe ist. Eine Kommandozeilen - Lösung aussehen könnte für kMDItemDateAddedin , mdlsaber ich die Hazel Lösung statt nur sehr empfehlen.
TJ Luoma
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.