Vô hiệu hóa tạo hình thu nhỏ chỉ cho các thư mục cụ thể, nhưng tất cả người dùng


12

Làm cách nào để ngăn Ubuntu 14.10 (nay là 15.04) tạo và lưu hình thu nhỏ cho một thư mục cụ thể?
Tôi muốn nói với người thu nhỏ bỏ qua thư mục đơn đó (và các thư mục con), nhưng cho tất cả các tài khoản người dùng hiện tại và tương lai.

Tôi đã đọc một số câu hỏi được trả lời về việc loại trừ một loại tệp cụ thể, nhưng tôi cần loại trừ các tệp theo vị trí của chúng!
Những gì tôi đã cố gắng là ẩn thư mục (được đổi tên thành .foldername), nhưng không có may mắn. Nhân tiện, thư mục được sở hữu bởi root.


6
Chỉ là sự khởi đầu của một ý tưởng (và nó sẽ chỉ hoạt động với một người dùng duy nhất): hình thu nhỏ được tạo, nếu tôi hiểu chính xác, bằng cách băm đường dẫn và viết một tệp có tên [hash] .png vào một thư mục .thumbnails/normal/và / hoặc .thumbnails/large/trong thư mục nhà của người dùng. Thay vào đó, chương trình của bạn có thể thực hiện cùng hàm băm và viết tệp hình thu nhỏ bằng 0 byte. Dù sao đi nữa, thói quen của trình thu nhỏ sẽ nhận thấy rằng một tệp hình thu nhỏ đã tồn tại và bỏ qua hình thu nhỏ của bạn.
Jos

Bạn sử dụng công cụ thu nhỏ nào? Nơi nào bạn lưu hình thu nhỏ?
daltonfury42

@ daltonfury42 Tôi không thể nói với bạn. Tình huống mà tôi đặc biệt cần điều này là trên một chiếc máy tính xách tay cũ, giờ đã chết. Tôi đã chạy Ubuntu với XFCE ở đó, vì vậy tôi nghĩ rằng nó là tumbler hoặc tuy nhiên trình thu nhỏ của nó được gọi. Dù sao, tôi nghĩ rằng nếu điều này là có thể, nó nên là một giải pháp tổng quát hơn.
Chỉ huy Byte

Câu trả lời:


2

Ngoài câu trả lời @Fabby :

  1. Cài đặt gói inoticoming

    sudo apt-get install inoticoming
    
  2. Tạo tập lệnh bao bọc 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. Làm cho nó thực thi

    chmod +x disable_thumbnails
    
  4. Giết các tiến trình đang chạy, nếu cần thiết

    killall inoticoming
    
  5. Xem thư mục của bạn

    Tránh dấu vết /cho tên thư mục

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

Chỉ có một vấn đề. Những thay đổi chỉ hiển thị saunautilus -q

Sử dụng inoticoming --foreground …để tránh chế độ daemon, nếu bạn kiểm tra tập lệnh.


Được rồi, tôi nautilus -qgiết quá trình nền nautilus và phát hành hình thu nhỏ được lưu trong bộ nhớ, tôi đoán vậy. Và tại sao có \;sự kết thúc của inoticominglệnh?
Chỉ huy Byte

@ByteCommander Để che dấu ;Chúng ta cần ;lệnh trong và không phải là dấu phân cách cho lệnh tiếp theo.
AB

Và cái này là về inoticoming --foreground _cái gì? Có gì sai với chế độ daemon? Tôi nghĩ rằng nó sẽ chạy tự động trong nền. Ồ, và làm thế nào để tôi thiết lập thứ này để bắt đầu tự động?
Chỉ huy Byte

@ByteCommander Để kiểm tra sử dụng tập lệnh--foreground
AB

2

Để lấy tên tệp cho hình thu nhỏ, hãy bắt đầu md5sumcho tên tệp gốc:

% 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

Bây giờ loại bỏ các quyền đọc:

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

Khởi động lại nautilus:

nautilus -q

và bạn sẽ không có hình thu nhỏ cho /home/user/Pictures/image 1.png.

Bây giờ bạn chỉ phải viết một tập lệnh quét các thư mục cụ thể của bạn và tự động thực hiện các bước trên.

Tín dụng : P


Nếu bạn thêm tập lệnh đó và bao gồm một dòng ghi đè hình thu nhỏ bằng tệp 0 byte, tôi sẽ rất vui! Ồ, và bạn phải cho tôi biết (hoặc liên kết) cách để tập lệnh chạy tự động. Tốt nhất là phản ứng với các sự kiện hệ thống tệp trong thư mục đó, nếu điều này là có thể ... Tôi không biết làm thế nào để cung cấp cho bạn tiền thưởng đó, tôi đoán @AB Phải làm điều đó khi anh ta cung cấp nó ...
Byte Commander

@ByteCommander cái gì đó như thế này ?
AB

@AB Vâng, có vẻ tốt. Nếu bây giờ bạn sẽ viết một câu trả lời khác với kịch bản đó và mọi thứ cùng nhau, điều đó thật tuyệt vời! :-)
Chỉ huy Byte

@ByteCommander đã hoàn thành :)
AB
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.