Login
Newsletter

Thema: Entfernen von alten Thumbnails

44 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von Chris am Do, 9. März 2006 um 10:30 #
Eine leicht optimierte Version:

find ~/.thumbnails -type f -atime +14 -print0 | xargs -0 rm

[
| Versenden | Drucken ]
  • 0
    Von Ronino am Do, 9. März 2006 um 10:32 #
    Was macht deine Version anders oder besser?
    [
    | Versenden | Drucken ]
    • 0
      Von Walter Plinge am Do, 9. März 2006 um 10:41 #
      -print0 hängt an jeden gefundenen Dateinamen eine 0 ran, und xargs -0 sagt dem rm Kommando, das jeder Dateiname auf 0 endet.

      Diese Version kommt auch mit Leerzeichen und Sonderzeichen im Dateinamen klar.

      Gruss

      [
      | Versenden | Drucken ]
      • 0
        Von Erik am Do, 9. März 2006 um 11:00 #
        > -print0 hängt an jeden gefundenen Dateinamen eine 0 ran
        Vielleicht kurz zur weiteren Erklärung: Ein Nullbyte, keine '0' (0x30).

        Ansonsten: Korrekt. :)

        lg
        Erik

        [
        | Versenden | Drucken ]
        0
        Von xyz am Do, 9. März 2006 um 11:29 #
        Damit kommt aber auch die Version im Kurztipp klar.

        Die verbesserte Version macht Folgendes anders/besser:
        die Ursprungsversion startet für jede gefundene Datei einen rm-Prozess,
        die verbesserte Version nimmt alle gefundenen Dateien zusammen und übergibt sie einem (wenn nötig, aber auch mehreren) rm-Prozess als Parameter.
        Deshalb wurde auch von "leicht optimierter Version" geschrieben.

        [
        | Versenden | Drucken ]
        0
        Von Jörg W Mittag am Do, 9. März 2006 um 13:53 #
        > -print0 hängt an jeden gefundenen Dateinamen eine 0 ran,

        Das ist ungenau formuliert: die Aktion -print – die auch die Standard-Aktion ist, falls keine andere angegeben wurde – gibt alle gefundenen Pfadnamen durch Zeilenumbruch getrennt auf der Standardausgabe aus, sprich je einen Pfadnamen pro Zeile; -print0 macht dasselbe, trennt die Pfadnamen jedoch nicht durch Zeilenumbrüche sondern durch Nullbytes (0x00 und nicht etwa das Zeichen "0"!).

        > und xargs -0 sagt dem rm Kommando, das jeder Dateiname auf 0 endet.

        Das ist komplett falsch. -0 ist eine Option von xargs, rm hat damit genau gar nichts zu tun. Die Option -0 sagt xargs, dass die auf der Standardeingabe übergebenen Pfadnamen durch Nullbytes und nicht durch Zeilenumbrüche getrennt sind, wie es eigentlich die Standards vorschreiben.

        Der Unterschied zwischen dieser Version und der ursprünglichen ist, dass die ursprüngliche Version für jeden gefundenen Pfadnamen einen eigenen rm-Prozess startet, während diese Version nur soviele rm-Prozesse startet, wie unbedingt nötig, z. B. aufgrund von Beschränkungen der Anzahl der Argumente, die an einen Prozess übergeben werden können, Beschränkungen der maximalen Länge der Kommandozeile u. s. w.

        Der große Nachteil der neuen Version ist allerdings, dass sie eine proprietäre, nicht-standardisierte Erweiterung von GNU find und GNU xargs verwendet, so dass diese Version mit anderen Implementierungen nicht funktioniert.

        Eine alternative Möglichkeit wäre die Verwendung der standardisierten POSIX-Syntax: find ~/.thumbnails -type f -atime +14 -exec rm '{}' +, also mit dem Plus-Zeichen "+" als Abschluss des Befehls anstatt des Semikolons ";".

        > Diese Version kommt auch mit Leerzeichen und Sonderzeichen im Dateinamen klar.

        Das kommt die ursprüngliche auch. Was du vermutlich meinst, ist die Variante find ~/.thumbnails -type f -atime +14 -print | xargs rm. Diese hat zwar auch kein Problem mit Leerzeichen und Sonderzeichen im Pfadnamen, aber mit Zeilenumbrüchen im Pfadnamen kommt sie nicht klar, denn schließlich dient der Zeilenumbruch ja als Trenner für die Pfadnamen-Liste. Das einzige Oktett, welches in einem Pfadnamen nicht vorkommen kann, ist 0x00. Alles andere ist erlaubt.

        jwm

        [
        | Versenden | Drucken ]
        • 0
          Von xyz am Do, 9. März 2006 um 14:43 #
          Außerdem könnte man noch klugscheissen, dass das Null-Byte daher kommt, dass es in einem "String" in C das Ende markiert.

          Weiterhin könnte man noch erwähnen, dass man aus Sicherheitsgründen lieber execdir statt exec verwenden sollte, was aber leider wiederum nicht zum POSIX-Standard gehört, aber das muss man jetzt nicht auch noch im Einzelnen vorkauen, denn ein Verweis auf die Info- oder auch Man-Pages von find ist viel besser.

          [
          | Versenden | Drucken ]
          0
          Von TRauMa am Do, 9. März 2006 um 14:49 #
          $ find ~/.thumbnails -type f -atime +32 -exec rm '{}' +
          find: Fehlendes Argument für "-exec".
          [
          | Versenden | Drucken ]
          • 0
            Von xyz am Do, 9. März 2006 um 15:03 #
            Deine Version von find ist zu alt (hättest Du auch meinem Kommentar weiter unten entnehmen können ...).

            GNU find version 4.2.27 tuts bei mir jedenfalls.

            [
            | Versenden | Drucken ]
            0
            Von Jörg W Mittag am Do, 9. März 2006 um 15:38 #
            Die Syntax mit -exec ... + wurde "erst" vor fünf Jahren standardisiert. Da kann man nicht erwarten, dass die GNU-Jungs das so "schnell" implementieren; man braucht also eine relativ neue Version der GNU findutils. Die Version, die in Debian 3.1 enthalten ist, reicht z. B. AFAIK nicht aus.

            Alternativ kann man man auch eine andere Implementierung verwenden; Jörg Schillings sfind etwa unterstützt das schon seit Jahren.

            jwm

            [
            | Versenden | Drucken ]
    0
    Von Christian am Do, 9. März 2006 um 11:13 #
    Ich habe das mal gleich erweitert und in roots crontab eingetragen:

    for HOME in /home/*; do find $HOME/.thumbnails/ -type f -atime +14 -print0 | xargs -0 rm; done

    [
    | Versenden | Drucken ]
    0
    Von xyz am Do, 9. März 2006 um 11:48 #
    Übrigens lässt sich dieses Verhalten auch bei neueren (GNU-only?) find-Versionen folgendmassen erreichen:


    -exec command {} +
    This variant of the -exec option runs the specified command on the selected files, but
    the command line is built by appending each selected file name at the end; the total
    number of invocations of the command will be much less than the number of matched files.
    The command line is built in much the same way that xargs builds its command lines.
    Only one instance of ’{}’ is allowed within the command. The command is executed in the
    starting directory.

    [
    | Versenden | Drucken ]
0
Von Hey am Do, 9. März 2006 um 10:38 #
Mein Verzeichnis ist 1,4 GB gross!

Da wird aber manch unbedarfter Nutzer eine Menge Plattenplatz verschwenden.

[
| Versenden | Drucken ]
0
Von Andreas_M am Do, 9. März 2006 um 10:41 #
..bei mir wird nix ausgeführt. 132MB vorher und nachher. ...?
[
| Versenden | Drucken ]
  • 0
    Von Michael Lehmeier am Do, 9. März 2006 um 10:50 #
    Auf die Gefahr hin etwas offensichtliches zu sagen:

    Hast du Thumbnails überhaupt aktiviert?
    Nicht nur bei der Ansicht, sondern dass sie permanent gespeichert werden?
    Ich z.B. nicht, ich habe nirgendwo Thumbnails.

    Trotzdem interessant der Trick mit dem -print0! (obwohl ich mir nicht vorstellen kann wieso der funktioniert...)

    [
    | Versenden | Drucken ]
    • 0
      Von Andreas_M am Do, 9. März 2006 um 11:05 #
      Auf die Gefahr hin total dumm zu fragen: Wo wird was aktiviert? Immerhin sind ja 132MB drin.
      [
      | Versenden | Drucken ]
      • 0
        Von Michael Lehmeier am Do, 9. März 2006 um 12:49 #
        Sorry, ich glaube hab dich falsch verstanden.
        Ich dachte du meinst, dein Home-Verzeichnis hat vorher und nachher 132MB.
        Dachte nicht, dass du dein .thumbnails meinst.
        Dachte, du hast das Verzeichnis gar nicht.
        [
        | Versenden | Drucken ]
    0
    Von anonymous coward am Do, 9. März 2006 um 11:04 #
    das heisst du bist ein braver bürger und schaust dir keinen pr0n an.
    [
    | Versenden | Drucken ]
0
Von Lord am Do, 9. März 2006 um 10:52 #
>>>Automatisch generierte Vorschaubilder (Thumbnails) können im Laufe der Zeit unnötig viel Platz auf der Festplatte belegen

Jo und dafür hat KDE ja ne Löschung vorgesehen und zwar in:

Kde Kontrollzentrum->Sicherheit(Security)->Privacy Haken bei Thumbnail Cache und cleanup ausführen.

Ich hoffe ihr bekommt jetzt nicht ne Flut von so kleinen Tipps geschikt so dass ihr für jeden Furz ne News schreibt:-)

[
| Versenden | Drucken ]
  • 0
    Von Gast am Do, 9. März 2006 um 10:59 #
    Nicht jeder nutzt KDE !
    Viele verwenden auch nur einen einfachen Windowmanager.
    [
    | Versenden | Drucken ]
    • 0
      Von DerZerstörer am Fr, 17. März 2006 um 13:56 #
      Das geht auch nicht nur unter KDE... der sehr gute Bildbetrachter GQviev (gtk) hat sowas wie in den Kurztipp hier auch eingebaut... sogar mit Fortschrittsbalken :)
      [
      | Versenden | Drucken ]
    0
    Von Eckhart am Do, 9. März 2006 um 11:01 #
    Ja, aber leider entfernt das alle Bilder im Verzeichnis, was nicht ganz dem Tipp entspricht.

    Eckhart

    [
    | Versenden | Drucken ]
    0
    Von The Roadrunner am Do, 9. März 2006 um 11:04 #
    kann man das auch regelmaessig automatisch laufen lassen?
    wenn nicht, dann ist die zeile dort oben besser ansonsten haben die entwickler von kde mitgedacht.
    [
    | Versenden | Drucken ]
    • 0
      Von chewie am Mi, 15. März 2006 um 16:59 #
      Entweder hab ich es gelesen, oder es mir dazugedacht, das der Artikel auf einen neuen Cronjob hinweist, den man sinniger Weise für die Sache erstellen sollte... ^^
      [
      | Versenden | Drucken ]
0
Von Mow am Do, 9. März 2006 um 12:54 #
Mein $GRAPHICVIEWER speichert unter anderem in jedem verzeichnis ein .thumbnails (konfigurierbar ob dort oder unter .gqview/thumbnails). Dafür hilft dann ein

find ~ -type f -regex '.*/\.thumbnails/.*' -atime +14 -exec rm {} +

{} muß in bash zumindest nicht maskiert werden.

[
| Versenden | Drucken ]
  • 0
    Von xyz am Do, 9. März 2006 um 14:56 #
    Zumindest für neuere Versionen von gqview ist das aber nicht mehr notwendig, da diese nur noch ~/.thumbnails benutzen (das andere Verhalten ist natürlich auch einstellbar).
    [
    | Versenden | Drucken ]
    • 0
      Von Mow am Do, 9. März 2006 um 15:27 #
      Klar, aber ich finde es brauchbarer, wenn die Thumbnails pro Verzeichnis abgelegt werden. Da läßt sich besser der Platz eines einzelnen Albums bestimmen.
      [
      | Versenden | Drucken ]
    0
    Von slacky am Do, 9. März 2006 um 18:43 #
    Irgendein Player aus den Staaten legt seine Vorschaubilder in der Datei Thumbs.db ab - wenn er z.B. per smb auf einen Linuxrechner zugreift ;-) . Der obige Aufruf leicht modifiziert bringt Klarheit
    [
    | Versenden | Drucken ]
0
Von dsfs am Do, 9. März 2006 um 17:01 #
mit den 999 geheimen Linuxtricks?
[
| Versenden | Drucken ]
0
Von allo am Fr, 10. März 2006 um 18:31 #
rm -rf .thumbnails

die sind schneller neugeneriert, als ein find die alle checkt ...
Jedenfalls die die ich noch brauche.

[
| Versenden | Drucken ]
0
Von Schneemann am Sa, 11. März 2006 um 17:42 #
Wieso gibt es überhaupt "frische" und alte Thumnails? Wenn das Thumbnail erzeugt, so dachte ich, gibt es eine Zeitstempel. Wird der nun ständig beim bloßen angucken verändert oder wie weiß das System, daß ich die Thumbs xy schon längere Zeit nicht mehr in Großformat aufgerufen habe?

Mhmm...

[
| Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten