OS Xでごみ箱にあるファイルを削除する


8

OS Xでemacsを設定してファイルをゴミ箱に削除する、最も優れた、最も将来性のある方法はありますか?

私はここの指示を試しまし

(setq delete-by-moving-to-trash t)

(defun system-move-file-to-trash (file)
  "Use \"trash\" to move FILE to the system trash.
When using Homebrew, install it using \"brew install trash\"."
  (call-process (executable-find "trash")
    nil 0 nil
        file))

しかし、それらは機能しません:

Trashing...
(wrong-type-argument stringp nil)

また、Emacsがファイルをゴミ箱に移動できるようにするために別のプログラムをインストールしなければならないのは間違っていると感じています。さらに、次回OS Xの新規インストールを行うときに、「ゴミ箱」プログラムをインストールすることを覚えていません。

更新:これを.emacsに追加してへの呼び出しを削除するとtrash、動作するようです。OSXのEmacsがデフォルトでFreeDesktopの~/.local/share/Trash場所に設定されているのはなぜですか。

(setq trash-directory "~/.Trash")

これについてはバグレポートを提出してください。
ナニー

バグレポートを送信しました。
Harvey



//、でもELPAは明らかに、これを台無しにされていますstackoverflow.com/questions/36187765/...
ネイサンBasanese

回答:


6

以下が必要です。

(setq delete-by-moving-to-trash t)
(setq trash-directory "~/.Trash")

関数にmove-file-to-trashは3つのテストがあります。 (1)trash-directoryが定義されているかどうか。(2)かどうか(fboundp 'system-move-file-to-trash)。そして、(3) キャッチオール使用すること第二の標準オプションを使用して構築されたときのテストは常にOSX 10.6.8に失敗します。現在、OSXの他のバージョンにアクセスできません。(t . . .~/.local/share...--with-ns


ので、これは完全な実装ではないことに注意してますが、多くの場合、十分に良い-あなたはファインダーから商標を使用し、それはここでは発生していない場合は、ファイルがどこから来たしかしOS Xアルトラック
user151019

3

system-move-file-to-trashこの方法で関数を定義すれば十分です:

(defun system-move-file-to-trash (file)
  (call-process "trash" nil nil nil file))

trashインストールしていない場合は、Emacsが教えてくれます。そして、変数を設定していないtrash-directoryので、trashあなたのためにそれを行います。

Emacsのゴミ箱の動作について:

move-file-to-trashは、「files.el」内のインタラクティブにコンパイルされたLisp関数です。

(ファイルをゴミ箱に移動FILENAME)

FILENAMEという名前のファイル(またはディレクトリ)をゴミ箱に移動します。「delete-by-moving-to-trash」が非nilの場合、この関数は、ファイルを完全に削除するのではなく、「delete-file」および「delete-directory」によって呼び出されます。

関数「system-move-file-to-trash」が定義されている場合は、引数としてFILENAMEを指定して呼び出します。それ以外の場合、「trash-directory」が非nilの場合は、FILENAMEをそのディレクトリに移動します。それ以外の場合は、GNOME、KDE、XFCEデスクトップ環境などのfreedesktop.org規則を使用してFILENAMEをゴミ箱に移動します。Emacsはボリュームごとのゴミ箱を無視して、ファイルを「ホームゴミ箱」にのみ移動します。

機能していないと思います。Finder (setq trash-directory "~/.Trash")はこれらのファイルがどこから来たのか(少なくとも)わからないため、これらのファイルを回復できません。


3

私はosx-trashパッケージを使用しています。trashコマンドラインユーティリティの有無にかかわらず動作し、macOSのTrashディレクトリと適切に統合されます。


trashコマンドラインユーティリティがなければ、ゴミの音を聞くことができます。ではtrash、コマンドラインユーティリティそれは高速です。
Raoul HATTERER
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.