ごみだって分別して欲しい
 2006.09.28

temporary-file-directory はどうして /tmp が標準なのですか。

TMPDIR, TMP, TEMP 等の環境変数を設定してたからって、その直下になるのは勘弁してください。

そりゃ make-temp-file してれば名前の衝突問題は置きないかもしれないけど。 それでもパーミッションの問題が。 一時的なファイルの中には人に見られちゃいかんファイルもあったりするかもしれんのです。 make-temp-file するたびに set-file-modes するの面倒です。 ぃゃ、するべきだけど。 し忘れたらどうするのかと。

そもそも /tmp 直下にファイルがごろごろするのが気持ち悪い。 ユーザごとに別ディレクトリでいいと思うのです。 gnuserv だって ssh-agent だって screen だってみんなみんなそうしてますし、そうするべきだと思うのです。

(setq temporary-file-directory
      (make-temp-file (format "/tmp/emacs-%s-" (user-login-name)) t))
(set-file-modes temporary-file-directory 448)	; 0700
(defun x:temporary-file-dir-clean-up ()
  (unless (directory-files temporary-file-directory nil "[^.]" t)
    (delete-directory temporary-file-directory)))
(add-hook 'kill-emacs-hook 'x:temporary-file-dir-clean-up)
カテゴリー:Emacs