Dateien nach Uhrzeit löschen

Einie

Benutzer
Mitglied seit
04. Jul 2023
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Moin zusammen.
Durch den Amoklauf eines Synctools habe ich die Herausforderung Dateien nach Uhrzeit zu löschen.
Die timestamps sind mir ja klar, aber welche Möglichkeiten habe ich in der Filestation nach Uhrzeit hin zu sortieren / zu löschen.
Gibt es 3rdParty Apps, die das erledigen?

Gruß

Einie
 
Zuletzt bearbeitet:

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Ich tendiere in solchen Fällen immer wieder gern zur Kommandozeile.
 
  • Like
Reaktionen: peterhoffmann

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.332
Punkte für Reaktionen
624
Punkte
174
Die Filestation kann das 'aus dem Bauch' heraus:
1688459283232.png

Such Dir das Datum aus, welches Du erfassen möchtest. Anschliessend nach der Spalte 'Datum' sortieren.
Danach kannst Du mehrere Elemente selektieren und ggfs. löschen.
Das wäre mal ein Anfang.
Die Anmerkung von @luddi zielt darauf ab, mittels Konsolenbefehl rekursiv zu arbeiten.
Das musst Du halt selber entscheiden, ob das was für Dich ist.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Ja genau, rekursiv und vor allem man sollte dabei wirklich gut aufpassen welchen Befehl man auf der Konsole absetzet wenn es ums Löschen von Dateien geht.
Dann lieber vorsichtig über die File Station manuell sortieren und löschen.
 

Einie

Benutzer
Mitglied seit
04. Jul 2023
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für die Informationen bisher, mein Ziel ist es aber nach Uhrzeit zu sortieren und zu löschen. Das Datum ist dabei egal. Es geht ausschliesslich um die Uhrzeit für ca. 20.000 Dateien.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Interessante Problemstellung... hatte ich bisher so nicht gesehen.

Kurzum: Bei den betreffenden Dateien variiert das Datum, die Uhrzeit ist aber immer gleich. Korrekt?

Auf der Konsole kann man mit
Code:
find
nach dem Dateialter suchen. Das bindet bei der Suche das Datum aber mit ein, sprich nicht zielführend.

Ich habe eine Möglichkeit gefunden die Dateinamen zu extrahieren, leider ohne Pfad.
Bash:
ls -laR /DEIN/VERZEICHNIS | grep "20:00"
 
Zuletzt bearbeitet:

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Nachtrag:
Einen Weg mit Umweg habe ich gefunden.
Bash:
ls -laRi /DEIN/VERZEICHNIS | grep "20:00" | awk '{print $1}'
So bekommt man die Inode-Nummer jeder betreffenden Datei.

Mit
Bash:
find -inum {Inode-NUMMER}
kann man die Datei (mit Pfad!) lokalisieren.

Nun noch
Bash:
rm
mit diesen Informationen nutzen und die Dateien löschen.

Ein kleines Skript wird bei 20.000 Dateien nötig sein. Und es wird etwas dauern, da der find-Befehl mit der Suche nach der Datei gut beschäftigt ist (je nach Verzeichnistiefe).

WICHTIG! => Alles Theorie! Vielleicht falsch! Nie selbst gemacht! Ohne Gewähr! Definitiv gefährlich! Niemals ohne Backup!
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Ulfhednir

McFlyHH

Benutzer
Mitglied seit
02. Jan 2014
Beiträge
427
Punkte für Reaktionen
82
Punkte
28

Kaktus1911

Benutzer
Mitglied seit
16. Nov 2022
Beiträge
103
Punkte für Reaktionen
24
Punkte
68
Hi

Hab damals auch lange gesucht - es geht über das "Find" Command:
Dort kannst dann Löschzeit und Ordnertiefen definieren.
Da bitte einlesen was du genau machen willst - weil sonst ist ganz schnell das Falsche weg

zb:
-------------------
find /volume1/"Outlook Backup/DESKTOP-BLNHDJB" -mindepth 1 -mtime +1
find /volume1/"Outlook Backup/DESKTOP-BLNHDJB" -mindepth 1 -mtime +1 -delete


#find /volume1/"Outlook Backup/DESKTOP-BLNHDJB" -mindepth 1 -type d -exec rmdir {} \; 2>/dev/null
#find /volume1/"Outlook Backup/DESKTOP-BLNHDJB" -type d -empty -mmin +60 -exec rm -rv {} \;

-exec rmdir {} \; - löscht alle leeren Verezeichnisse egal wie alt oder neu
>/dev/null - schickt alle Fehlermeldungen ins Leere

find sucht die Dateien
mindepth -1 gibt an dass nur bis zum Stammordner gelöscht wird und dieser bestehen bleibt
---------------------

https://community.synology.com/enu/forum/1/post/133494

https://community.synology.com/enu/forum/17/post/51976
 

Einie

Benutzer
Mitglied seit
04. Jul 2023
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Ja,. es ist noch ein wenig schlimmer. Ich muss nach einem Breich zwischen 22 und 06:00 lölschen......
 

Kaktus1911

Benutzer
Mitglied seit
16. Nov 2022
Beiträge
103
Punkte für Reaktionen
24
Punkte
68
Ah - was ist wenn du den Ordner über SMB auf Windows einbindest und dann per zb Totalcommander oder einem adneren guten Dateiexplorer suchst und löscht?
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
In nachfolgender Zeile werden alle Dateien zwischen 22:00 Uhr und 06:00 Uhr (Änderungsdatum) gelöscht.
Um es ersteinmal zu testen, kann man das abschließende | xargs rm entfernen, um die Ergebnisse zu prüfen:
Bash:
find "/volume1/dein/Pfad" -type f -printf "%TY-%Tm-%Td %TH:%TM %p\n" | awk '$2 >= "22:00" && $2 <= "06:00" {print $3}' | xargs rm
 
Zuletzt bearbeitet:

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Ich muss nach einem Breich zwischen 22 und 06:00 lölschen......
Und um welchen Zeitstempel geht es dabei?
  • Access
  • Modify
  • Change
  • Birth
Ich habe mal ein Script vorbereitet welches auf ein einzigen Zeitstempel die Dateien findet und entfernt.

Aber wenn es um eine Zeitspanne geht wie angegeben muss ich da nochmals überlegen 🤔

Nochmals genauer nachgefragt um es besser zu spezifizieren.
Die Uhrzeit zwischen 22:00 und 06:00 Uhr aber auch an unterschiedlichen Tagen?
D.h. Nur die Uhrzeit aber nicht das Datum ist bei der Suche relevant?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Unser @geimist ist schon einer ;) .
Hab grad mal die man-Page zu find gelesen, speziell zu -printf. Bei "%TH" z.B. steht das "T" für Modifikation-Time (Access-Time wäre "A"), das "H" für die Stunde. Boah, kann man sich da Dinge zusammenbasteln.

Edit: Ich frag mich grad, was "awk '$2 >= "22:00" && $2 <= "06:00"..." macht. Ist && eine Und-Verknüpfung? Müsste das kein Oder sein?
 
Zuletzt bearbeitet:

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
In nachfolgender Zeile...
... hat ein Profi gearbeitet, der nicht nur (wie ich) einen Hammer, sondern auch anderes Werkzeug in seinem Repertoire hat.
Ich verneige mich. Schöne Lösung!
 
  • Like
Reaktionen: w00dcu11er

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Ich habe mir das auch nur zusammengesucht. Dem Internetz sei Dank :giggle:

Edit: Ich frag mich grad, was "awk '$2 >= "22:00" && $2 <= "06:00"..." macht. Ist && eine Und-Verknüpfung? Müsste das kein Oder sein?
Ja, das ist eine UND-Verknüpfung. Es soll ja nur löschen, wenn größer als 22 Uhr UND kleiner als 6 Uhr. Bei ODER wäre jede Datei zutreffend.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Überleg mal, welche Datei hat ein schon eine Modifikation-Time, die >= 22 Uhr und <= 06 Uhr ist, keine. Mit oder passt es.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat