Вопрос или проблема
У меня много изображений на моем ноутбуке, так как я работаю в графике. На той же системе у меня также есть папка с семейными фотографиями.
Я хотел бы сделать две вещи:
- Очистить уже кэшированные изображения
и затем
- «вынести в черный список» или исключить папку с семейными фотографиями, так как я использую Shotwell для организации/добавления/удаления этих файлов
В настройках Nautilus можно изменять только глобальные настройки.
Есть идеи?
Эскизы хранятся в ~/.cache/thumbnails
. Простое удаление всего в этой папке сбросит ваши эскизы, в результате чего они будут воссозданы в соответствии с глобальными настройками. Боюсь, я не могу придумать способ предотвратить создание эскизов для конкретного каталога.
Примечание: В Ubuntu 12.04 (Precise Pangolin) и более ранних версиях эскизы хранятся в ~/.thumbnails
. Но пожалуйста, убедитесь в этом для вашего собственного дистрибутива. Lubuntu 12.10 (чистая установка) имеет свои эскизы в ~/.thumbnails, и в ~/.cache нет подпапки thumbnails
.
BleachBit может очистить кэш ваших эскизов, как я полагаю. Но не уверен, как заносить папку в черный список, чтобы она не создавала эскизы.
удалить эскиз, если оригинальный файл не существует:
cd ~/.cache/thumbnails
find large normal -type f |
perl -MImage::Magick -MURI::Escape -lne '
$, = "\t";
$f = $_;
$img = Image::Magick->new;
$img->Read($f);
$u = $img->Get("%[Thumb::URI]");
$p = uri_unescape $u;
$p = substr $p, 7;
next if -f $p;
print "rm", $f, $p;
unlink $f;
'
Эскизы хранятся в $HOME/.cache/thumbnails. Это md5sum от URI файла и сравнение времени между вашим файлом и сгенерированным эскизом.
Вот почему touch your-file
вызывает воссоздание эскиза.
Если вы не хотите каким-либо образом изменять свой файл, вы можете поискать по md5:
clean-thumbnail-cache
#!/bin/bash
#set -xv
MD5SUM=$(echo -n file://$PWD/$1 | md5sum | awk '{ print $1 }')
find $HOME/.cache/thumbnails -name $MD5SUM.png -exec rm -v {} \; | grep "."
if [ $? != 0 ]
then
echo эскиз не найден
fi
Поместите в PATH и вызовите его с:
clean-thumbnail-cache ваш-файл
Имейте в виду, что это не было тщательно протестировано (символьные ссылки, файлы с пробелами и т. д…)
Ответ или решение
Как сбросить кэш эскизов в Linux и исключить папку
Ваша задача включает в себя сброс кэша эскизов фотографий и исключение конкретной папки с семейными фотографиями из дальнейшего формирования эскизов. Давайте разберем эти шаги подробнее.
Шаг 1: Сброс кэша эскизов
Эскизы изображений хранятся в директории ~/.cache/thumbnails
. Чтобы сбросить кэш и удалить все ранее сохраненные эскизы, выполните следующие команды в терминале:
rm -rf ~/.cache/thumbnails/*
Эта команда полностью очистит папку с кэшем эскизов. При следующем открытии изображений в файловом менеджере Nautilus новые эскизы будут созданы в соответствии с глобальными настройками.
Для пользователей старых версий Ubuntu (например, 12.04 и ниже), возможно, потребуется уточнить директорию, так как в этих версиях эскизы могут храниться в ~/.thumbnails
. Проверьте это в своей системе, прежде чем выполнять команды.
Шаг 2: Исключение папки с семейными фотографиями из кэша
К сожалению, стандартные настройки Nautilus не позволяют исключать конкретные папки из создания эскизов. Однако для этого можно воспользоваться несколькими обходными путями.
-
Скрыть папку с фотографиями: Вы можете временно переименовать папку с семейными изображениями, сделав ее скрытой. Переименуйте её, добавив точку в начале имени, например,
.семейные_фото
. Это предотвратит создание эскизов для этой папки. -
Автоматизированные скрипты: Вы можете использовать скрипт, который удаляет эскизы для конкретной папки. Ниже приведен пример скрипта на bash, который может помочь вам удалить эскизы для определённой картинки:
#!/bin/bash
# Получаем путь к файлу
FILE_PATH="$1"
# Создаем MD5 хеш из пути к файлу
MD5SUM=$(echo -n "file://${FILE_PATH}" | md5sum | awk '{ print $1 }')
# Удаляем эскиз, если он существует
find ~/.cache/thumbnails -name "${MD5SUM}.png" -exec rm -v {} \;
if [ $? != 0 ]; then
echo "Эскиз не найден."
fi
Сохраните этот скрипт, дайте ему права на выполнение, а затем запускайте его с путем к изображению из вашей папки, для которого хотите удалить эскиз.
Альтернативные методы
Если вы не хотите использовать терминал, вы можете установить менеджер очистки, такой как BleachBit, который имеет возможность очистки кэша эскизов и упрощает управление локальными файлами.
Заключение
Сброс кэша эскизов – это довольно простая процедура, которую можно легко выполнить через терминал. Исключение папки с семейными фотографиями требует использования обходных путей, таких как временное скрытие папки или создание специального скрипта для обхода этого ограничения. Если у вас будут дополнительные вопросы или возникнут сложности, не стесняйтесь задавать их.