回答:
freedesktopのドキュメントによれば、サムネイル管理標準 。サムネイルのmtime (変更時間)が元のファイルのmtimeよりも小さい場合、nautilusにサムネイルを強制的に再作成させることができます。
- 変更を検出
1つの重要なことは、縮小版のバージョンでのみ、サムネイル画像が元の画像と同じ情報を表示することを保証することです。これを可能にするには、必要な「Thumb :: MTime」キーに保存されている変更時間を使用し、それがオリジナルの現在の変更時間と等しいかどうかを確認します。そうでない場合は、サムネイルを再作成する必要があります。
例2.変更をチェックするアルゴリズム。
if(file.mtime!= thumb.MTime){recreate_thumbnail(); }
file.mtime> thumb.MTimeのチェックを行うだけでは不十分です。ユーザーが元のファイルの上に別のファイルを移動した場合、mtimeは変更されますが、実際にはサムネイルに保存されたmtimeよりも低い場合、この変更は認識されません。
これを達成するために...少しのNautilusスクリプトを使って、元のファイルのmtimeをtouchコマンドで現在の時刻に設定することができます。
1)スクリプトを作成します。ターミナルウィンドウを開いてCtrl+ Alt+ Tと入力します。
Ubuntu 12.04および12.10の場合
nano ~/.gnome2/nautilus-scripts/Regenerate-Thumbnail
Ubuntu 13.04以降の場合
nano ~/.local/share/nautilus/scripts/Regenerate-Thumbnail
2)スクリプトの内容。
#!/bin/bash
BAKIFS=$IFS
IFS=$'\n'
for FILE in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
touch -m "$FILE"
done
IFS=$BAKIFS
変更をnanoに保存するには、。Ctrl+ O、Enter次にCtrl+ X。
3)スクリプトを実行可能にします。
Ubuntu 12.04および12.10の場合
chmod +x ~/.gnome2/nautilus-scripts/Regenerate-Thumbnail
Ubuntu 13.04以降の場合
chmod +x ~/.local/share/nautilus/scripts/Regenerate-Thumbnail
4)スクリプトをテストするには、nautilusを開いてファイルを選択し、右クリックして[ スクリプト]> [サムネイルの再生成 ]に移動します 。
お役に立てれば。
私はこれが古い質問であることを知っていますが...サムネイルが動けなくなって、トリックがなかっtouch -m
たりmv
、再生されないことがあります。
この簡単なスクリプトを書いて(この回答のおかげです)、それを呼び出しましょうfind-gnome-thumbnail
:
#! /bin/bash
#
fn=$(echo -n "$1" | md5sum | awk '{print $1}')
find $HOME/.cache/ -name "$fn*" 2> /dev/null
サムネイルの場所を決定するファイルの正規名をフィードします。これを行うためのより良い方法は、nautilus、do ctrlC、およびターミナルの書き込み find-gnome-thumbnail '
(スペースと開始の単一引用符を使用)でファイルを選択し、その後にshiftctrlV; 最後の引用符を追加すると、次のようになります。
% ./find-gnome-thumbnail 'file:///home/romano/tmp/0101_IM_3026506.pdf'
/home/romano/.cache/thumbnails/large/d090cf90d2ac3f8127f62043f06b66df.png
これで問題のサムネイルを削除でき、サムネイルが再生成されます(単独で発生しない場合はF5キーを押します)。コピーと貼り付けのトリックは、奇妙な文字変換を処理します。
% ./find-gnome-thumbnail 'file:///home/romano/tmp/lalla%20(copy).pdf'
/home/romano/.cache/thumbnails/large/28864dd40fab6d4982e1b103365574da.png
でファイルの名前を変更するとスクリプトが失敗することがあります。mv
理由はわかりません---しかし、ほとんどの場合は問題ありません。また、サムネイルを手動で削除しても、すぐに再生成されるわけではありません---ここでも、困っています。
簡略化された回答(@Roman Raguetに基づく)
/home/me/myimages
実行する touch -m
touch -m myfile.jpg
touch -m *
これで、サムネイルがノーチラスで再生成されます。
mv file newfile
、少し待ってからmv newfile file
。働いていた。