Как принудительно обновить эскизы в PCmanFM

(Конвенция - .txt - это просто текстовые файлы. .sh файлы - это файлы скриптов оболочки.).

Ваш скрипт mainscript.txt имеет состояние гонки. В частности, цикл while начинает свою следующую итерацию перед тем, как скрипт script044.txt сможет создать временный файл. Фактически весь цикл проходит итерацию перед созданием любого из этих файлов.

Более надежным способом решения этой проблемы является забыть временные файлы и использовать оболочку builtin wait вместо:

#!/bin/bash

pid_count=0
for counter in $(seq 1 5)
do
    xterm -e "bash script044.txt" &
    if (( ++pid_count > 2 )); then
        wait -n
        ((pid_count--))
    fi
done

Это увеличивает счетчик каждый раз при запуске подпроцесса. Если счетчик больше 3, то мы ждем завершения следующего подпроцесса. Когда возвращается wait, то мы уменьшаем счетчик и снова обходим вокруг, чтобы запустить следующий подпроцесс.

Вы можете удалить из скрипта044.txt все строки, связанные с tempfilename- они больше не нужны.


Как указывает @chepner, необходимая опция -n доступна только в bash 4.3 или более поздней версии.

1
08.07.2018, 06:29
2 ответа

Проблема может заключаться не в pcmanfm. Если вы делаете снимки с помощью мобильного устройства, то, скорее всего, файл JPEG содержит миниатюру (См. Exif). pcmanfm просто использует его в качестве эскиза и отображает его.

Однако, когда вы поворачиваете изображение на рабочем столе, скорее всего, программное обеспечение для редактирования изображений обновляет само изображение, но не его эскиз. Поэтому это создает несоответствие между изображением и его миниатюрой.

Чтобы подтвердить это, вы можете использовать exiv2 , чтобы определить, есть ли миниатюра в файле JPEG:

exiv2 image.jpg | grep -i thumbnail

Если это так, вы можете извлечь его, чтобы увидеть, соответствует ли оно самому изображению:

exiv2 -et image.jpg

Наконец, вы можете удалить эскиз в файле JPEG:

exiv2 -dt image.jpg

Снова откройте pcmanfm и проверьте, правильно ли он обрабатывает миниатюры.

Если вы действительно хотите сохранить миниатюру в файле JPEG, вы можете поискать программное обеспечение для редактирования фотографий, которое корректно обновляет миниатюру. Но лично я считаю, что было бы неплохо его не иметь, так как это может сэкономить место, если у вас много фотографий.

0
28.01.2020, 00:42

Перейдите к пункту «Редактировать настройки» в строке меню. Откроется диалоговое окно. Убедитесь, что отмечена галочка показывать миниатюры, и если вы видели какие-то миниатюры в этой программе, то так и будет. Там, где написано «не создавать миниатюры для изображений, превышающих этот размер», измените число на максимально большое.

Вы можете снять флажок «Создавать миниатюры только для локальных файлов», если хотите иметь возможность просматривать миниатюры, которые есть на вашей камере или телефоне.

0
28.01.2020, 00:42

Теги

Похожие вопросы