staging.inyokaproject.org

Alle Dateien löschen ausser

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

seit1996

Anmeldungsdatum:
18. November 2010

Beiträge: Zähle...

Hallo,

mir will gerade keine schöne Lösung einfallen, wie ich ein Verzeichnis rekursiv lösche, aber bestimmt Dateien und Unterverzeichnisse ausschließe. Die Liste von Ausnahmen wird mit der Zeit wachsen.

apt-ghetto

Anmeldungsdatum:
3. Juni 2014

Beiträge: 2943

  • Wo ist das Problem?

  • Wie sehen die weniger schönen Lösungen aus?

  • Wie werden "bestimmte Dateien und Verzeichnisse", die du ausschliessen möchtest, bestimmt?

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21863

Das könnte daran liegen, dass schon die Formulierung sich ausschließt 😉

Ein Verzeichnis rekursiv löschen heisst "Allen Inhalt löschen und anschließen das Verzeichnis löschen"Das schließt Ausnahmen aus, denn dann löschst Du ja weder den kompletten Inhalt noch das Wurzelverzeichnis.

Du könntest Dir mittels find und der NOT-Bedingung etwas bauen. Ob man das durch listen machen kann, weiß ich nicht.

seit1996

(Themenstarter)

Anmeldungsdatum:
18. November 2010

Beiträge: Zähle...

Ich brauche so eine Lösung, um nach dem Browserstart das ~/.mozilla-Verzeichnis aufzuräumen.

Seit kurzen rennt der FF bei mir mit 100% CPU-Auslastung und erst ein neues Profile brachte Abhilfe. Jetzt will ich nach dem Browserstart immer das Profil aufräumen und weiss grob welche Dateien ich behalten muss. Alle anderen sollen gelöscht werden. Behalten muss ich im Grunde nur diese: https://support.mozilla.org/de/kb/wiederherstellen-wichtiger-daten-aus-altem-profil und die welche zu den wenigen AddOns gehört die ich nutze.

Das ganze soll als Wrapper-Skript laufen.

PS: Ich habe jetzt erst einmal das hier gebastelt (die exclude-list als HERE-DOC):

find | grep -F -v -f <exclude-list> | xargs rm -r

PPS: @redknight: Du erkennst es ist ein rm -r enthalten 😛

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21863

seit1996 schrieb:

Ich brauche so eine Lösung, um nach dem Browserstart das ~/.mozilla-Verzeichnis aufzuräumen.

Seit kurzen rennt der FF bei mir mit 100% CPU-Auslastung und erst ein neues Profile brachte Abhilfe. Jetzt will ich nach dem Browserstart immer das Profil aufräumen und weiss grob welche Dateien ich behalten muss. Alle anderen sollen gelöscht werden. Behalten muss ich im Grunde nur diese: https://support.mozilla.org/de/kb/wiederherstellen-wichtiger-daten-aus-altem-profil und die welche zu den wenigen AddOns gehört die ich nutze.

Ok, das beschreibt das Problem konkreter 😉

PPS: @redknight: Du erkennst es ist ein rm -r enthalten 😛

Ja. Und die "Lösung" und ihre Krücken zeigen, dass das nicht das richtige Werkzeug ist 😛 Blöder Vergleich: Ich kann auch eine Schraube mit einem Hammer in die Wand bringen

Wenn du weisst, was du behalten willst, wäre mein naiver Ansatz, diese Dateien zu kopieren, alles zu löschen und wieder hinzukopieren

seit1996

(Themenstarter)

Anmeldungsdatum:
18. November 2010

Beiträge: Zähle...

redknight schrieb:

Wenn du weisst, was du behalten willst, wäre mein naiver Ansatz, diese Dateien zu kopieren, alles zu löschen und wieder hinzukopieren

Das bringt mich sogar auf eine schöne Lösung. Ich werde ein Dummy-Profile ~/.mozilla-dummy pflegen. Mittels rsync und exclude-liste aktuell halten und vor dem Start hinkopieren und danach das dummy syncen und das ~/.mozilla löschen.

Also gut dass wir drüber geredet haben! Das meine ich wirklich so, ganz ohne Ironie 😉

Thomas_Do Team-Icon

Moderator
Avatar von Thomas_Do

Anmeldungsdatum:
24. November 2009

Beiträge: 8808

Vielleicht solltest Du mal das zugrundeliegende Problem angehen. Es ist sicher möglich FF auch ohne solche Workarounds zu betreiben.

seit1996

(Themenstarter)

Anmeldungsdatum:
18. November 2010

Beiträge: Zähle...

@Thomas_Do: Nenn mich paranoid, aber ich leite von der 100% CPU-Auslastung ein kompromittiertes FF-Profile ab (Es gab da noch mehr Anzeichen). Dem will ich damit entgegenwirken. Das man das im normalen Alltag nicht braucht ist mir klar!

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

seit1996 schrieb:

Ich brauche so eine Lösung, um nach dem Browserstart das ~/.mozilla-Verzeichnis aufzuräumen.

Nach dem Start oder Beenden? Dateien im Profil zu löschen, während Firefox läuft, ist m.E. fehlerträchtig.

Seit kurzen rennt der FF bei mir mit 100% CPU-Auslastung und erst ein neues Profile brachte Abhilfe. Jetzt will ich nach dem Browserstart immer das Profil aufräumen und weiss grob welche Dateien ich behalten muss. Alle anderen sollen gelöscht werden.

Du solltest lieber mal dem Problem auf den Grund gehen. Hoher oder niedriger CPU-Verbrauch sagen überhaupt nichts über die Sicherheit aus. Hast Du mal clamscan über den Profilordner laufen lassen?

PS: Ich habe jetzt erst einmal das hier gebastelt (die exclude-list als HERE-DOC):

Das geht nicht. Der grep kann Stdin nur entweder mit der Pipe oder dem Here Doc verbinden.

find | grep -F -v -f <exclude-list> | xargs rm -r

PPS: @redknight: Du erkennst es ist ein rm -r enthalten 😛

Ja, aber das ist Quark. Zum einen, weil find auch "-delete" kennt und zum anderen, weil find ja bereits rekursiv durch den Verzeichnisbaum wandert, so dass das "-r" auf irgendein Verzeichnis angewendet alles wegräumt, was Du behalten willst.

Außerdem ist der Ansatz mit dem grep für den Ausschluss sehr fragil. Viel besser ist es, das alles mit find zu erledigen:

1
2
3
4
5
6
#!/bin/sh

find \! \( -type f \( \
-name '*.blubb' -o \
-name 'blabb.*' \
\) \) -delete

Wenn Du das so formatierst, dann brauchst Du nur Zeile 4 zu kopieren, wieder einzufügen und das Muster zu ändern. Dann brauchst Du auch keine separate Liste. Man könnte die Logik auch noch umdrehen und braucht dann weniger Klammern:

1
2
3
4
5
6
#!/bin/sh

find -type f \( \
-name '*.blubb' -o \
-name 'blabb.*' \
\) -o -delete

Testlauf mit "-print" anstatt "-delete"!

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

seit1996 schrieb:

find | grep -F -v -f <exclude-list> | xargs rm -r

PPS: @redknight: Du erkennst es ist ein rm -r enthalten 😛

Igittigitt, nein !
Das was Du wirklich willst, reimt sich ± eher auf sowas:

1
find ... -regex ... -prune ... [ -delete ]

Aber das -delete wirklich bitte erst, wenn die Liste die er nach dem testen anzeigt, auch zu 100% stimmt !

LG,

track

seit1996

(Themenstarter)

Anmeldungsdatum:
18. November 2010

Beiträge: 65

rklm schrieb:

seit1996 schrieb:

Ich brauche so eine Lösung, um nach dem Browserstart das ~/.mozilla-Verzeichnis aufzuräumen.

Nach dem Start oder Beenden? Dateien im Profil zu löschen, während Firefox läuft, ist m.E. fehlerträchtig.

Na *vor* dem Start und *nach* dem Beenden. Ich habe es etwas kompakt ausgedrückt, war wohl nicht mehr zu verstehen ☺

Seit kurzen rennt der FF bei mir mit 100% CPU-Auslastung und erst ein neues Profile brachte Abhilfe. Jetzt will ich nach dem Browserstart immer das Profil aufräumen und weiss grob welche Dateien ich behalten muss. Alle anderen sollen gelöscht werden.

Du solltest lieber mal dem Problem auf den Grund gehen. Hoher oder niedriger CPU-Verbrauch sagen überhaupt nichts über die Sicherheit aus. Hast Du mal clamscan über den Profilordner laufen lassen?

Nein. Hätte ich aber mal tun sollen – das stimmt. Immerhin kennt man schon einige MITB https://en.wikipedia.org/wiki/Man-in-the-browser#Examples (Wenn auch für Windows).

PS: Ich habe jetzt erst einmal das hier gebastelt (die exclude-list als HERE-DOC):

Das geht nicht. Der grep kann Stdin nur entweder mit der Pipe oder dem Here Doc verbinden.

Ja stimmt, war auch nur ein erster Gedanke. Aber das Syntax mit find ist mir zu umständlich! Ich mach das nun via rsync – wie oben gesagt – und dann kann ich die Include-Liste auch als HERE-DOC angeben, so das ich alles in einem Sript unterbekomme (ausser dem Dummy-Verzeichnis) – das finde ich halt besser.

// Ich habe clamscan mal über das Backup laufen lassen, das sollte aktuell genug dafür sein:

clamscan -r
...
----------- SCAN SUMMARY -----------
Known viruses: 4566249
Engine version: 0.99.2
Scanned directories: 79
Scanned files: 2301
Infected files: 0
Data scanned: 36.04 MB
Data read: 43.24 MB (ratio 0.83:1)
Time: 12.678 sec (0 m 12 s)

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

seit1996 schrieb:

Ja stimmt, war auch nur ein erster Gedanke. Aber das Syntax mit find ist mir zu umständlich!

Wieso das denn? Du brauchst doch in meinem Skript immer nur eine Zeile zu kopieren und dann ein anderes Muster für den Namen angeben.

Ich mach das nun via rsync – wie oben gesagt – und dann kann ich die Include-Liste auch als HERE-DOC angeben, so das ich alles in einem Sript unterbekomme (ausser dem Dummy-Verzeichnis) – das finde ich halt besser.

Ist ja bei meinem Skript mit find auch alles in einer Datei.

Ich habe clamscan mal über das Backup laufen lassen, das sollte aktuell genug dafür sein:

Sieht doch gut aus. Ggf. kannst Du noch mal nach PUA suchen lassen ("--detect-pua=yes").

Antworten |