Вимкнути створення мініатюр лише для певних папок, але для всіх користувачів


12

Як я можу запобігти моєму Ubuntu 14.10 (зараз 15.04) створювати та зберігати ескізи лише для певної папки?
Я хочу сказати ескізу, щоб пропустити цю єдину папку (і підпапки), але для всіх існуючих та майбутніх облікових записів користувачів.

Я прочитав відповіді на запитання про виключення конкретного типу файлів, але мені потрібно виключити файли за їх місцезнаходженням!
Я вже спробував приховати папку (перейменовану на .foldername), але не пощастило. До речі, папка належить root.


6
Лише початок ідеї (і вона працюватиме лише для одного користувача): ескізи створюються, якщо я правильно розумію, шляхом хешування шляху і написання файлу під назвою [hash] .png до каталогу .thumbnails/normal/та / або .thumbnails/large/в домашній каталог користувача. Ваша програма може виконувати той же хеш і замість цього написати мініатюрний файл з нульовим байтом. На будь-яку удачу, програма ескізів помітить, що файл мініатюр вже існує і пропустить мініатюру вашого зображення.
Джос

Який ескіз ви використовуєте? Де ви зберігаєте ескізи?
daltonfury42

@ daltonfury42 Я не можу тобі сказати. Ситуація, коли мені це було особливо потрібно, було на старому, тепер уже мертвому ноутбуці. Я там запускав Ubuntu з XFCE, тому я думаю, що він був перевантажувачем, але, як називали його ескіз. У будь-якому випадку, я думаю, якщо це можливо, це має бути більш загальним рішенням.
Байт-командир

Відповіді:


2

Окрім відповіді @Fabby :

  1. Встановіть пакет в режимі unicomicoming

    sudo apt-get install inoticoming
    
  2. Створіть сценарій обгортки 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. Зробіть його виконуваним

    chmod +x disable_thumbnails
    
  4. При необхідності вбийте запущені процеси

    killall inoticoming
    
  5. Перегляньте свою папку

    Уникайте слідів /для імен папок

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

Є лише одна проблема. Зміни видно лише післяnautilus -q

Використовуйте, inoticoming --foreground …щоб уникнути демон-режиму, якщо ви перевіряєте сценарій.


Гаразд, nautilus -qвбиває процес фонового тексту nautilus і випускає ескізи, збережені в пам'яті. І чому там \;в кінці inoticomingкоманди?
Командир байтів

@ByteCommander Для маскування команди ;нам потрібна ;команда, а не як роздільник для наступної команди.
AB

І про що це inoticoming --foreground _? Що не так у режимі демон? Я подумав, що він повинен працювати автоматично на задньому плані. О, і як мені встановити, щоб ця річ почалася автоматично?
Байт-командир

@ByteCommander Для перевірки використання сценарію--foreground
AB

2

Щоб отримати ім'я файлу ескізу, почніть md5sumз початкового імені файлу:

% 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

Тепер видаліть дозволи на читання:

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

Перезапустити nautilus:

nautilus -q

і у вас не буде ескізу /home/user/Pictures/image 1.png.

Тепер вам залишається лише написати сценарій, який сканує ваші конкретні папки і автоматично виконує описані вище дії.

Кредити : P


Якщо ви додасте цей скрипт і додасте рядок, що переписує мініатюру файлом 0 байтів, я буду радий! О, і ви повинні сказати мені (або посилання), як змусити сценарій запускатися автоматично. Найкраще було б реагувати на події файлової системи в тій папці, якби це було можливо ... Я не маю уявлення, як надати вам цю суму, хоча, я думаю, @AB має робити це так, як він пропонує ...
Byte Commander

@ByteCommander що - щось на зразок цього ?
AB

@AB Так, добре виглядає. Якби ви зараз написали ще одну відповідь із цим сценарієм і всім разом, це було б приголомшливо! :-)
Байт-командир

@ByteCommander зроблено :)
AB
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.