Nonaktifkan pembuatan thumbnail untuk folder tertentu saja, tetapi semua pengguna

12

Bagaimana saya mencegah Ubuntu 14.10 saya (sekarang 15.04) dari membuat dan menyimpan thumbnail hanya untuk folder tertentu?
Saya ingin memberi tahu thumbnailer untuk melewati folder tunggal (dan subfolder), tetapi untuk semua akun pengguna yang ada dan yang akan datang.

Saya membaca beberapa pertanyaan terjawab tentang mengecualikan jenis file tertentu, tetapi saya harus mengecualikan file berdasarkan lokasi mereka!
Apa yang sudah saya coba adalah menyembunyikan folder (berganti nama menjadi .foldername), tetapi tidak berhasil. Folder ini dimiliki oleh root.

Komandan Byte
sumber
6
Hanya permulaan ide (dan itu hanya akan berfungsi untuk satu pengguna): thumbnail dibuat, jika saya mengerti dengan benar, dengan mem-hashing path dan menulis file yang disebut [hash] .png ke direktori .thumbnails/normal/dan / atau .thumbnails/large/di direktori home pengguna. Program Anda dapat melakukan hash yang sama dan menulis file thumbnail nol-byte sebagai gantinya. Bagaimanapun, rutin thumbnailer akan melihat bahwa file thumbnail sudah ada dan melewatkan thumbnailing gambar Anda.
Jos
Thumbnailer apa yang Anda gunakan? Di mana Anda menyimpan gambar mini?
daltonfury42
@ Daltonfury42 Saya tidak bisa memberi tahu Anda. Situasi di mana saya secara khusus membutuhkan ini adalah pada laptop lama yang sudah mati. Saya menjalankan Ubuntu dengan XFCE di sana, jadi saya pikir itu tumbler atau thumbnailernya dipanggil. Bagaimanapun, saya pikir jika ini mungkin, itu harus menjadi solusi yang lebih umum.
Byte Commander

Jawaban:

2

Selain jawaban @Fabby :

  1. Instal paket inoticoming

    sudo apt-get install inoticoming
    
  2. Buat skrip 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. Jadikan itu dapat dieksekusi

    chmod +x disable_thumbnails
    
  4. Hentikan proses yang berjalan, jika perlu

    killall inoticoming
    
  5. Awasi folder Anda

    Hindari jejak /untuk nama folder

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

Hanya ada satu masalah. Perubahan hanya akan terlihat setelahnautilus -q

Gunakan inoticoming --foreground …untuk menghindari mode daemon, jika Anda menguji skrip.

AB
sumber
Oke, nautilus -qmembunuh proses latar belakang nautilus dan melepaskan thumbnail dalam cache, saya kira. Dan mengapa ada \;di akhir inoticomingperintah?
Byte Commander
@ByteCommander Untuk menyamarkan ;Kita membutuhkan ;perintah dan bukan sebagai pembatas untuk perintah selanjutnya.
AB
Dan tentang apa ini inoticoming --foreground _? Apa yang salah dengan mode daemon? Saya pikir itu harus berjalan secara otomatis di latar belakang. Oh, dan bagaimana cara mengatur hal ini untuk mulai secara otomatis?
Byte Commander
@ByteCommander Untuk menguji penggunaan skrip--foreground
AB
2

Untuk mendapatkan nama file untuk thumbnail, mulai md5sumuntuk nama file asli:

% 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

Sekarang hapus izin baca:

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

Mulai kembali nautilus:

nautilus -q

dan Anda tidak akan memiliki thumbnail untuk /home/user/Pictures/image 1.png.

Sekarang Anda hanya perlu menulis skrip yang memindai folder tertentu dan melakukan langkah-langkah di atas secara otomatis.

Kredit : P

Fabby
sumber
Jika Anda menambahkan skrip itu dan menyertakan baris yang menimpa thumbnail dengan file 0-byte, saya akan senang! Oh, dan Anda harus memberi tahu saya (atau menautkan) cara membuat skrip dijalankan secara otomatis. Yang terbaik adalah bereaksi pada peristiwa sistem file dalam folder itu, jika ini mungkin ... Saya tidak tahu bagaimana memberi Anda karunia itu, saya kira @AB Harus melakukan itu ketika ia menawarkannya ...
Byte Commander
@ByteCommander sesuatu seperti ini ?
AB
@ AB Ya, terlihat bagus. Jika sekarang Anda akan menulis jawaban lain dengan skrip itu dan semuanya bersama-sama, itu akan luar biasa! :-)
Byte Commander
@ByteCommander selesai :)
AB