Deaktivieren Sie die Erstellung von Miniaturansichten nur für bestimmte Ordner, aber für alle Benutzer

12

Wie verhindere ich, dass mein Ubuntu 14.10 (jetzt 15.04) Thumbnails nur für einen bestimmten Ordner erstellt und speichert?
Ich möchte den Thumbnailer anweisen, diesen einzelnen Ordner (und Unterordner) zu überspringen, aber für alle vorhandenen und zukünftigen Benutzerkonten.

Ich habe einige beantwortete Fragen zum Ausschließen eines bestimmten Dateityps gelesen, muss jedoch Dateien nach ihrem Speicherort ausschließen!
Was ich bereits versucht habe, ist, den Ordner zu verstecken (umbenannt in .foldername), aber ohne Glück. Der Ordner gehört übrigens root.

Byte Commander
quelle
6
Nur der Anfang einer Idee (und das funktioniert nur für einen einzelnen Benutzer): Die Miniaturansichten werden, wenn ich das richtig verstehe, durch Hashing des Pfads und Schreiben einer Datei mit dem Namen [hash] .png in ein Verzeichnis .thumbnails/normal/und / oder .thumbnails/large/in das erstellt Home-Verzeichnis des Benutzers. Ihr Programm könnte denselben Hash ausführen und stattdessen eine Null-Byte-Thumbnail-Datei schreiben. Glücklicherweise stellt die Thumbnailer-Routine fest, dass bereits eine Thumbnail-Datei vorhanden ist, und überspringt das Thumbnailing Ihres Bildes.
Jos
Welchen Thumbnailer verwenden Sie? Wo speichern Sie die Thumbnails?
Daltonfury42
@daltonfury42 kann ich dir nicht sagen. Die Situation, in der ich dies speziell brauchte, war auf einem alten, jetzt toten Laptop. Ich habe dort Ubuntu mit XFCE ausgeführt, also denke ich, es war Tumbler oder wie auch immer der Thumbnailer genannt wurde. Sowieso denke ich, wenn dies möglich ist, sollte es eine allgemeinere Lösung sein.
Byte Commander

Antworten:

2

Zusätzlich zu @ Fabby Antwort:

  1. Installieren Sie das Paket inoticoming

    sudo apt-get install inoticoming
    
  2. Erstellen Sie ein Wrapper-Skript disable_thumbnails

    #!/bin/bash
    
    # Create the thumbnail filename
    tn_filename=$(echo -n "file://$1/$2" | sed 's/\s/%20/g' | md5sum | awk '{print $1}')
    
    # Destroy the thumbnail without deleting
    find ~/.cache/thumbnails -type f -name "$tn_filename*" -print0 | while IFS= read -d '' file; do
      echo > "$file"
    done
    exit 0
    
  3. Mach es ausführbar

    chmod +x disable_thumbnails
    
  4. Beenden Sie ggf. laufende Prozesse

    killall inoticoming
    
  5. Beobachten Sie Ihren Ordner

    Vermeiden Sie ein Nachstellen /der Ordnernamen

    inoticoming "<path_to_disabled_thumbnail_folder>" <full_path_of_disable_thumbnails_script>  {} "<path_to_disabled_thumbnail_folder>" \;
    

Es gibt nur ein Problem. Die Änderungen sind erst nach sichtbarnautilus -q

Verwenden Sie inoticoming --foreground …diese Option , um den Daemon-Modus zu umgehen, wenn Sie das Skript testen.

AB
quelle
Okay, das beendet nautilus -qden Nautilus-Hintergrundprozess und gibt Miniaturansichten frei, die im Speicher zwischengespeichert sind. Und warum steht \;am Ende des inoticomingBefehls das?
Byte Commander
@ByteCommander Um das zu maskieren, ;brauchen wir das ;im Befehl und nicht als Begrenzer für den nächsten Befehl.
AB
Und worum geht es hier inoticoming --foreground _? Was ist los mit dem Daemon-Modus? Ich dachte, es sollte automatisch im Hintergrund laufen. Oh, und wie stelle ich dieses Ding so ein, dass es automatisch startet?
Byte Commander
@ByteCommander Zum Testen des Skripts verwenden Sie--foreground
AB
2

Um den Dateinamen für die Miniaturansicht zu ermitteln, müssen Sie mit md5sumdem ursprünglichen Dateinamen beginnen:

% echo -n "file:///home/user/Pictures/image%201.png" | md5sum
6e1669aea9c118cb2b7ad23fc6646c71  -

% find ~/.cache/thumbnails -type f -name "6e1669aea9c118cb2b7ad23fc6646c71*"
/home/user/.cache/thumbnails/large/6e1669aea9c118cb2b7ad23fc6646c71.png

Entfernen Sie nun die Leseberechtigungen:

chmod -r /home/user/.cache/thumbnails/large/6e1669aea9c118cb2b7ad23fc6646c71.png

Nautilus neu starten:

nautilus -q

und du wirst kein Vorschaubild für haben /home/user/Pictures/image 1.png.

Jetzt müssen Sie nur noch ein Skript schreiben, das Ihre speziellen Ordner durchsucht und die obigen Schritte automatisch ausführt.

Credits : P

Fabby
quelle
Wenn Sie dieses Skript hinzufügen und eine Zeile einfügen, die das Vorschaubild mit einer 0-Byte-Datei überschreibt , würde ich mich freuen! Oh, und Sie müssen mir (oder einem Link) mitteilen, wie das Skript automatisch ausgeführt werden soll. Am besten wäre es, auf Dateisystemereignisse in diesem Ordner zu reagieren, wenn dies möglich wäre ... Ich habe keine Ahnung, wie ich Ihnen dieses Kopfgeld geben kann. Ich denke, @AB muss das tun, wenn er es anbietet ...
Byte Commander
@ByteCommander so etwas wie dies ?
AB
@AB Ja, sieht gut aus. Wenn Sie jetzt eine weitere Antwort mit diesem Skript und allem zusammen schreiben würden, wäre das großartig! :-)
Byte Commander
@ ByteCommander fertig :)
AB