Ordner der Inhalt selbst löscht, mit Automator?

Xscburn

Mitglied
Thread Starter
Dabei seit
07.04.2017
Beiträge
30
Reaktionspunkte
7
Hallo,

könnte man unter Mac OS sierra (das aktuellste) mit dem Automator, einen Ordner so programmieren, das er z.B. nach 2 Tagen den Inhalt des Ordners löscht?

Viele Grüße !
 
ja, aber nicht ganz automatisch, sondern immer dann, wenn eine Datei oder ein Ordner in den Auto-Lösch-Ordner gelegt wird, findet die Prüfung statt, ob eine Datei / Ordner schon länger als x Tage drin liegt und falls ja, eben gelöscht wird.

Dazu öffne Automator, wähle "Ordneraktion" als Art aus und ziehe aus der Bibliothek links aus der Rubrik "Dienstprogramme" die Aktion "Shell-Script ausführen" ins rechte Fenster. Oben rechts wählst du dann den zu beobachtenden Ordner aus, stellst dann "Eingabe übergeben" auf "Als Argumente" und gibts folgenden Code dort ein:

Code:
for f in "$@"
do
    touch "$f"
done

find "/der/komplette/Pfad/zum/Ornder" -mtime +2 -exec rm -f {] \;

Das sieht dann so aus:

Bildschirmfoto 2017-04-16 um 14.38.34.png

Im Beispiel werden alle Dateien/Ordner erst mal mit aktuellem Datumsstempel versehen und dann wird geprüft ob Dateien/Ornder mit Datumsstempel älter als 2 Tage vorhanden sind. Falls ja, werden diese unwiederbringlich gelöscht.

Aber ACHTUNG:
Die Anführungszeichen sind extrem wichtig.
Gib den Pfad in Anführungszeichen ein und überprüfe ihn genau. Das script löscht die Dateien / Ordner ohne Rückfrage. Und da können Tippfehler oder vergessene Anführungszeichen einen großen Schaden anrichten. Wenn du nicht weißt wie der Pfad komplett genau lautet... lass es sein.
 
lass' doch einfach nur den find stündlich als launchagent laufen.
 
nun ja, er wollte halt was mit Automator. Und je nach Vorkenntnissen ist eserwas aufwendig, die Erstellung eines launchagent hier im Forum zu beschreiben.

Außerdem klappt das nur mit "find" nicht, denn die find-Zeile findet alle Dateien die vor mehr als 2 Tagen geändert wurden. Das ist was anderes, als die Dateien nach 2 Tagen zu löschen, nachdem sie in den Ordner gelegt wurden. Daher ja die Sache mit dem "touch" für alle in den Ordner gelegt Objekte. (und das geht m.W. auch nur so via Ornderaktionen)
 
Außerdem klappt das nur mit "find" nicht, denn die find-Zeile findet alle Dateien die vor mehr als 2 Tagen geändert wurden.
ja, das müsste man noch klären. für z.b. den Downloads-ordner würde es ausreichen.
 
Und je nach Vorkenntnissen ist eserwas aufwendig, die Erstellung eines launchagent hier im Forum zu beschreiben.
Das sollte hier nicht aufwendiger sein als sonstwo.
Schreib doch mal ein Tutorial!
Es gibt aber auch mindestens ein Progrämmchen, das per GUI Einträge in den LaunchDaemon- und LaunchAgents-Verzeichnissen erstellt. Aber frag bitte nicht, wie es heißt…
Und auch nicht, ob es noch aktuell gehalten wird und unter den neuen OS-Xen läuft.
 
Das sollte hier nicht aufwendiger sein als sonstwo.
Schreib doch mal ein Tutorial!
Es gibt aber auch mindestens ein Progrämmchen, das per GUI Einträge in den LaunchDaemon- und LaunchAgents-Verzeichnissen erstellt. Aber frag bitte nicht, wie es heißt…
Und auch nicht, ob es noch aktuell gehalten wird und unter den neuen OS-Xen läuft.

Das Tool nennt sich "LaunchControl" und wird auch aktuell gepflegt. Ich habe erst gerade ein update installiert. Hier ist es http://www.soma-zone.com/LaunchControl/
Das Tool ist echt gut und ich finde, man sollte es auch bezahlen, denn die Jungs dort machen einen echt guten Job.

Und das mit dem Tutorial, naja, in einem Forum würde es schon den Umfang eines Artikels sprengen. Aber ich kann's ja mal versuchen und schreib erst mal eines in meinem Blog und extrahiere dann das Wesentliche hier für's Forum.

Wer bis dahin nicht warten will, der kann sich mal mal in die Original-Doku von Apple einlesen: https://developer.apple.com/library...stemStartup/Chapters/CreatingLaunchdJobs.html
 
ja, aber nicht ganz automatisch, sondern immer dann, wenn eine Datei oder ein Ordner in den Auto-Lösch-Ordner gelegt wird, findet die Prüfung statt, ob eine Datei / Ordner schon länger als x Tage drin liegt und falls ja, eben gelöscht wird.

Dazu öffne Automator, wähle "Ordneraktion" als Art aus und ziehe aus der Bibliothek links aus der Rubrik "Dienstprogramme" die Aktion "Shell-Script ausführen" ins rechte Fenster. Oben rechts wählst du dann den zu beobachtenden Ordner aus, stellst dann "Eingabe übergeben" auf "Als Argumente" und gibts folgenden Code dort ein:

Code:
for f in "$@"
do
    touch "$f"
done

find "/der/komplette/Pfad/zum/Ornder" -mtime +2 -exec rm -f {] \;

Das sieht dann so aus:

Anhang anzeigen 206630

Im Beispiel werden alle Dateien/Ordner erst mal mit aktuellem Datumsstempel versehen und dann wird geprüft ob Dateien/Ornder mit Datumsstempel älter als 2 Tage vorhanden sind. Falls ja, werden diese unwiederbringlich gelöscht.

Aber ACHTUNG:
Die Anführungszeichen sind extrem wichtig.
Gib den Pfad in Anführungszeichen ein und überprüfe ihn genau. Das script löscht die Dateien / Ordner ohne Rückfrage. Und da können Tippfehler oder vergessene Anführungszeichen einen großen Schaden anrichten. Wenn du nicht weißt wie der Pfad komplett genau lautet... lass es sein.
Hallo Lisanet, Hallo an allen anderen,
bin verzweifelt, würde für eine entsprechende Hilfe auch bezahlen.
Ich möchte das die Bilder die von der Kamera über EOS Utility, die in einem angelegten Ordner gespeichert werden in "Bilder" mit Automator in "Foto" importiert werden (Das habe ich auch schon geschafft), nun nach dem Sie dort Importiert wurden möchte Ich diese Bilder alsbald möglichst Zeitnah automatisch löschen lassen und das ist auch das Problem.
Habe nun schon einiges oder sehr viel mit Automator probiert nur leider hat es bisher nicht oder noch nicht geklappt.
Bin wirklich auch bereit zu bezahlen wenn dies so nach meinen Wünschen umgesetzt werden könnte, gut zu bezahlen, kann mir da jemand bei meinem Vorhaben helfen?
Meine Programierkenntnissse sind sehr sehr dürftig, genauso auch mein Englisch.
Vielen Dank.
 
Warum nicht einfach einen Cronjob?

Terminal.app
man crontab
 
Das ist nicht das Problem, es soll ja nicht von einem Server abgerufen werden, sondern sollen die Befehle Innerhalb des Computers erfolgen
 
Zurück
Oben Unten