Jak zregenerować określoną miniaturę w Nautilusie?


9

Czasami kadruję pliki PDF, aby odczyt jednej strony zamiast zeskanowanych dwóch stron. Nautilus zachowuje jednak starą miniaturę pokazującą poprzednią stronę główną.

Wiem, że mogę usunąć ukryty folder miniatur, ale chcę wiedzieć, jak mogę ponownie wygenerować tylko jedną konkretną miniaturę. F5 nie pomaga.


1
Użyłem tej sztuczki, aby przejść do linii poleceń i zrobić mv file newfile, poczekaj chwilę i mv newfile file. Przyzwyczajony do pracy.
Rmano

Odpowiedzi:


8

Zgodnie z dokumentacją Freedesktop Thumbnail Managing Standard . Możesz zmusić nautilus do odtworzenia miniatury, jeśli mtime (czas modyfikacji) w miniaturze jest niższy niż mtime w oryginalnym pliku.

  1. Wykryj modyfikacje

Jedną ważną rzeczą jest upewnienie się, że obraz miniatury wyświetla te same informacje, co oryginał, tylko w zmniejszonej wersji. Aby to umożliwić, używamy czasu modyfikacji zapisanego w wymaganym kluczu „Thumb :: MTime” i sprawdzamy, czy jest on równy bieżącemu czasowi modyfikacji oryginału. Jeśli nie, musimy odtworzyć miniaturę.

Przykład 2. Algorytm sprawdzania modyfikacji.

if (file.mtime! = thumb.MTime) {restoreate_thumbnail (); }

Nie wystarczy wykonać file.mtime> thumb.MTime check. Jeśli użytkownik przeniesie> inny plik nad oryginał, w którym mtime zmienia się, ale w rzeczywistości jest niższy niż> mtime przechowywany w miniaturze, nie rozpoznamy tej modyfikacji.

Aby to osiągnąć ... możesz spróbować za pomocą skryptu Nautilus ustawić mtime w oryginalnym pliku na bieżący czas za pomocą polecenia dotykowego .

1) Tworzenie skryptu. Otwórz okno terminala Ctrl+ Alt+ Ti wpisz:

Dla Ubuntu 12.04 i 12.10

  • nano ~/.gnome2/nautilus-scripts/Regenerate-Thumbnail

Dla Ubuntu 13.04 i nowszych

  • nano ~/.local/share/nautilus/scripts/Regenerate-Thumbnail

2) Treść skryptu.

#!/bin/bash

BAKIFS=$IFS
IFS=$'\n'

for FILE in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
      touch -m "$FILE"
done

IFS=$BAKIFS

Aby zapisać zmiany w nano .. Ctrl+ O, Entera następnie Ctrl+ X.

3) Aby skrypt był wykonywalny.

Dla Ubuntu 12.04 i 12.10

  • chmod +x ~/.gnome2/nautilus-scripts/Regenerate-Thumbnail

Dla Ubuntu 13.04 i nowszych

  • chmod +x ~/.local/share/nautilus/scripts/Regenerate-Thumbnail

4) Aby przetestować skrypt, możesz otworzyć nautilus, wybrać plik (i), kliknąć prawym przyciskiem myszy i przejść do Skrypty> Regeneruj miniaturę .

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Mam nadzieję że to pomoże.


4

Wiem, że to stare pytanie, ale ... czasami miniaturki się zacinają i nie ma żadnej sztuczki touch -mani nie mvpowoduje ich regeneracji.

Napisz ten prosty skrypt (dzięki tej odpowiedzi ), nazwijmy go find-gnome-thumbnail:

#! /bin/bash 
#
fn=$(echo -n "$1" | md5sum | awk '{print $1}')
find $HOME/.cache/ -name "$fn*" 2> /dev/null

i podaj kanoniczną nazwę pliku, którego lokalizację miniatury chcesz określić. Lepszym sposobem na to jest wybranie pliku w nautilus, do ctrlC, i zapisanie w terminalu find-gnome-thumbnail '(ze spacją i otwierającym pojedynczym cudzysłowie), a następnie shiftctrlV; dodaj cytat końcowy, a będziesz mieć coś takiego:

 % ./find-gnome-thumbnail 'file:///home/romano/tmp/0101_IM_3026506.pdf' 
/home/romano/.cache/thumbnails/large/d090cf90d2ac3f8127f62043f06b66df.png

Teraz możesz usunąć niepoprawną miniaturę, która zostanie zregenerowana (naciśnij klawisz F5, jeśli nie stanie się to samodzielnie). Sztuczka kopiuj-wklej zajmuje się konwersją dziwnych znaków:

 % ./find-gnome-thumbnail 'file:///home/romano/tmp/lalla%20(copy).pdf'
 /home/romano/.cache/thumbnails/large/28864dd40fab6d4982e1b103365574da.png

Czasami skrypt zawiedzie, jeśli zmienisz nazwę pliku za pomocą mv, nie wiem dlaczego --- ale przez większość czasu jest w porządku. Również ręczne usunięcie miniatury nie powoduje jej natychmiastowej regeneracji --- ponownie, tutaj jestem zagubiony.


2

Mam skrypt, którego używam (autor nieznany) o nazwie Auto Thumbnailer, który działa dobrze w tym celu. Mam go w pakiecie skryptów, które tutaj uzyskałem

i zainstalowany w / usr / share / nautilus-scripts / Zainstalowałem również menedżera skryptów Nautilus, aby nie musiałem widzieć ich wszystkich w menu skryptów, kiedy kliknę prawym przyciskiem myszy ikonę, tylko tych, których używam.


0

Uproszczona odpowiedź (na podstawie @Roman Raguet)

  1. Otwórz terminal
  2. Przejdź do folderu, w którym znajdują się twoje pliki, na przykład /home/me/myimages
  3. Wykonać touch -m

    • Na przykład do jednego pliku touch -m myfile.jpg
    • Lub do wszystkich plików touch -m *

Teraz miniatury powinny zostać zregenerowane w nautilusie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.