Firefoxでファイルを保存せずに内部プラグイン(pdfやdocファイルなど)なしで開くことを選択した場合、デフォルトの動作はファイルが/ tmpと選択したアプリケーション(mupdfまたはlibreofficeなど)が一時ファイルを入力として開きます。一時ファイルのファイル名は、同じ名前のファイルが/ tmpにすでに存在しない限り、通常ダウンロードしたファイルの元の名前です。この場合、拡張子の前にファイル名にサフィックス(-1、-2、-3など)が追加されます。 Firefoxが閉じると(デフォルトの動作が変わらない限り)、/ tmpから一時ファイルが削除されます。
不要になったとき(つまり、それを使用しているアプリケーションが無効になったとき)に、各一時ファイルを削除する方が便利です。これを達成する方法はありますか?
あるいは、同じ名前のファイルがすでに存在する場合は、/ tmpの既存のファイルを新しいファイルに置き換える方が良いでしょうか? (つまり、ファイル名は変更されません。)可能ですか?
答え1
一時ファイルをできるだけ早く削除するには、次のようなラッパーを作成できます。
#!/bin/sh
the-application "$1"
rm -f "$1"
the-application
実際の実行可能ファイルの名前に変更し、Firefoxにアプリケーションの代わりにこのラッパーを使用するように依頼してください。または:
#!/bin/sh
the-application "$1"
case "$1" in
/tmp/*) rm -f "$1" ;;
esac
このフォームは、Firefoxの将来のバージョンが「ファイル:」URLの新しいファイルを生成しない場合(ファイルを削除したくない場合)、より安全になります。
一部のアプリケーションはすぐに返されるため、アプリケーションが終了する前にファイルを削除すると正常に動作しない可能性があります。この場合、できることはあまりありません(少なくとも信頼できる方法で)。
代替(既存のファイルを同じ名前で置き換える)に関して、これは使用されている他のアプリケーションと競合し、/tmp
セキュリティに影響を与える可能性があります。一般的に言えば、これは良い考えではありません。
答え2
私はしばらくFirefoxパラメータを使って遊んでいましたが、本当に見苦しいようです。しかし!あなたの例には簡単な解決策があります。
まず、一時パスを設定し、ブラウザを実行し、最後に一時パスからファイルを削除する独自のスクリプトを作成する必要があります。これは次のとおりです
#!/bin/bash
tmp_folder='/tmp/firefox-tmp'
export TMP=$tmp_folder
export TEMP=$tmp_folder # (my Iceweasel needs setting both TMP and TEMP!)
mkdir $tmp_folder
firefox
rm -f $tmp_folder/*
このファイルをどこかに保存します(デスクトップに/home/<user>/Desktop/firefox.sh
実行権限を付与するなど)。
chmod +x full_path_to_file_on_desktop
スクリプトを実行すると、/tmp/firefox-tmp
必要に応じてすべての一時ファイルをこのフォルダにリダイレクトし、ブラウザを閉じるとフォルダの内容が削除されます。
ヒント:現在直面しているデフォルトの動作を変更するための設定(about:config)がFirefoxで見つかりませんでしたので、私の解決策を使用してください。実際に動作します:)
ユーザープロファイルとキャッシュプロファイルを使用することもできますが、これは別のトピックです... yyy ...トピック;)