Desabilitar a criação de miniaturas apenas para pastas específicas, mas todos os usuários

12

Como evito que o meu Ubuntu 14.10 (agora 15.04) crie e salve miniaturas apenas para uma pasta específica?
Quero dizer ao miniaturista para pular a pasta (e as subpastas) únicas, mas para todas as contas de usuário existentes e futuras.

Li algumas perguntas respondidas sobre a exclusão de um tipo de arquivo específico, mas preciso excluir os arquivos por sua localização!
O que eu já tentei é ocultar a pasta (renomeada para .foldername), mas sem sorte. A pasta pertence à raiz, a propósito.

Byte Commander
fonte
6
Apenas o começo de uma ideia (e funcionará apenas para um único usuário): as miniaturas são criadas, se bem entendi, fazendo o hash do caminho e escrevendo um arquivo chamado [hash] .png em um diretório .thumbnails/normal/e / ou .thumbnails/large/no diretório diretório inicial do usuário. Seu programa pode executar o mesmo hash e gravar um arquivo de miniatura de zero byte. Por alguma sorte, a rotina de miniaturas notará que já existe um arquivo de miniaturas e ignorará a miniatura da imagem.
21715 Jos
Qual miniatura você usa? Onde você salva as miniaturas?
precisa saber é o seguinte
@ daltonfury42 Eu não posso te dizer. A situação em que eu especificamente precisava disso estava em um laptop velho, agora morto. Eu estava rodando o Ubuntu com o XFCE lá, então acho que era mais tumbler ou, no entanto, seu miniaturista foi chamado. Enfim, acho que se isso for possível, deve ser uma solução mais geral.
Byte Commander

Respostas:

2

Além da resposta @Fabby :

  1. Instale o inoticoming do pacote

    sudo apt-get install inoticoming
    
  2. Criar script de wrapper 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. Torne executável

    chmod +x disable_thumbnails
    
  4. Mate os processos em execução, se necessário

    killall inoticoming
    
  5. Assista sua pasta

    Evite rastrear /os nomes das pastas

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

Existe apenas um problema. As alterações são visíveis somente apósnautilus -q

Use inoticoming --foreground …para evitar o modo daemon, se você testar o script.

AB
fonte
Ok, ele nautilus -qmata o processo em segundo plano do nautilus e libera miniaturas armazenadas em cache na memória, eu acho. E por que existe \;o final do inoticomingcomando?
Byte Commander
@ByteCommander Para mascarar o comando ;Precisamos do ;comando e não como delimitador para o próximo comando.
AB
E o que é isso inoticoming --foreground _? O que há de errado com o modo daemon? Eu pensei que deveria ser executado automaticamente em segundo plano. Ah, e como faço para definir isso para iniciar automaticamente?
Byte Commander
@ByteCommander Para testar o uso do script--foreground
AB
2

Para obter o nome do arquivo para a miniatura, inicie md5sumcom o nome do arquivo original:

% 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

Agora remova as permissões de leitura:

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

Reinicie o nautilus:

nautilus -q

e você não terá miniatura para /home/user/Pictures/image 1.png.

Agora você só precisa escrever um script que verifique suas pastas específicas e execute as etapas acima automaticamente.

Créditos : P

Fabby
fonte
Se você adicionar esse script e incluir uma linha que substitua a miniatura por um arquivo de 0 byte, ficarei feliz! Ah, e você precisa me dizer (ou vincular) como executar o script automaticamente. O melhor seria reagir aos eventos do sistema de arquivos nessa pasta, se isso fosse possível ... Não tenho idéia de como dar essa recompensa, acho que o @AB precisa fazer isso como ele oferece ...
Byte Commander
@ByteCommander algo como este ?
AB
@ AB Sim, parece ser bom. Se você escrever outra resposta com esse script e tudo junto, isso seria incrível! :-)
Byte Commander
@ByteCommander done :)
AB