Как восстановить определенный эскиз в Nautilus?

9

Иногда я обрезаю PDF-файлы, чтобы получить отсканированное изображение вместо отсканированных двух страниц. Тем не менее, nautilus сохраняет старую миниатюру, показывающую предыдущую первую страницу

Я знаю, что могу удалить скрытую папку с миниатюрами, но я хотел бы знать, как я могу восстановить только одну конкретную миниатюру. F5 не помогает.

Эд Виллегас
источник
1
Я использовал трюк, чтобы войти в командную строку и сделать a mv file newfile, немного подождать и mv newfile file. Раньше работал.
Rmano

Ответы:

8

В соответствии с документацией freedesktop Thumbnail Managing Standard . Вы можете заставить nautilus воссоздать миниатюру, если mtime (время модификации) на миниатюре меньше, чем mtime в исходном файле.

  1. Определить изменения

Одна важная вещь состоит в том, чтобы гарантировать, что уменьшенное изображение отображает ту же информацию, что и оригинал, только в уменьшенном масштабе. Чтобы сделать это возможным, мы используем время модификации, сохраненное в необходимом ключе «Thumb :: MTime», и проверяем, равно ли оно текущему времени модификации оригинала. Если нет, мы должны воссоздать миниатюру.

Пример 2. Алгоритм проверки на модификацию.

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

Недостаточно выполнить проверку file.mtime> thumb.MTime. Если пользователь переместит> другой файл поверх оригинала, где mtime изменяется, но на самом деле меньше, чем> миниатюра, сохраненная mtime, мы не узнаем эту модификацию.

Чтобы добиться этого ... вы можете попробовать с помощью небольшого Nautilus-Script установить команду mtime в исходном файле на текущее время с помощью сенсорной команды.

1) Создание сценария. Откройте окно терминала Ctrl+ Alt+ Tи введите:

Для Ubuntu 12.04 и 12.10

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

Для Ubuntu 13.04 и выше

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

2) Содержание сценария.

#!/bin/bash

BAKIFS=$IFS
IFS=$'\n'

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

IFS=$BAKIFS

Чтобы сохранить изменения в нано .. Ctrl+ O, Enterзатем Ctrl+ X.

3) Сделать скрипт исполняемым.

Для Ubuntu 12.04 и 12.10

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

Для Ubuntu 13.04 и выше

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

4) Чтобы протестировать скрипт, вы можете открыть nautilus, выбрать файл (ы), щелкнуть правой кнопкой мыши и перейти к « Сценарии»> «Регенерировать» .

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Надеюсь это поможет.

Роман Рагет
источник
4

Я знаю, что это старый вопрос, но ... иногда миниатюры застряли и не обманули touch -mили не mvзаставили его восстановиться.

Напишите этот простой скрипт (благодаря этому ответу ), давайте назовем его find-gnome-thumbnail:

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

и введите в него каноническое имя файла, для которого вы хотите определить расположение миниатюр. Лучший способ сделать это - выбрать файл в nautilus, do ctrlCи в терминальной записи find-gnome-thumbnail '(с пробелом и открывающей одинарной кавычкой) и после этого shiftctrlV; добавьте заключительную цитату, и вы получите что-то вроде этого:

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

Теперь вы можете удалить поврежденный эскиз, и он будет восстановлен (нажмите F5, если это не произойдет в одиночку). Трюк с копированием и вставкой позаботится о странных преобразованиях символов:

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

Иногда сценарий завершается ошибкой, если вы переименовываете файл mv, я не знаю почему --- но в большинстве случаев это нормально. Кроме того, удаление миниатюры вручную не приводит к ее немедленной регенерации - опять же, я в недоумении.

Rmano
источник
2

У меня есть скрипт, который я использую (автор неизвестен), который называется Auto Thumbnailer, который отлично подходит для этого. Я получил это в пакете сценариев, которые я получил здесь

и установил в / usr / share / nautilus-scripts / Я также установил менеджер скриптов Nautilus, чтобы мне не пришлось видеть их всех в меню скриптов, когда я щелкаю правой кнопкой мыши по значку, только те, которые я использую.

Старейшина Гик
источник
0

Упрощенный ответ (на основе @Roman Raguet)

  1. Открытый терминал
  2. Перейдите в папку, где находятся ваши файлы, например, /home/me/myimages
  3. казнить touch -m

    • Либо в один файл, например, touch -m myfile.jpg
    • Или ко всем файлам, touch -m *

Теперь миниатюры должны быть восстановлены в вашем nautilus.

loved.by.Jesus
источник