Warum speichert der Befehl „rm“ die Datei nicht im Papierkorb?

Mit dem rm 'filename'Befehl habe ich festgestellt, dass die Datei nicht wirklich in den Papierkorb abgelegt wird. Mir ist klar, dass dies die Datei nicht vollständig vom Computer entfernt, aber ich bin verblüfft darüber, warum sie nicht im Papierkorb angezeigt wird.

Zusamenfassend:

Warum legt der Befehl 'rm' die Datei nicht im Papierkorb ab.

Sie können dieses Tool für Ihr bevorzugtes Verhalten verwenden. github.com/nateshmbhat/rm-trash

Antworten (3)

rm ist ein Standard-Unix-Befehl und Unix hat nicht immer Papierkorb. Auf der Programmierebene hat die BSD-API keinen Systemaufruf zum Löschen einer Datei, Apple liefert diese auf einer höheren Ebene.

Außerdem brauchen Sie einen Befehl, der Dateien löscht, zB um sie aus dem Papierkorb zu entfernen, und rm ist es zufällig. Sie benötigen einen weiteren Befehl, um eine Datei in den Papierkorb zu verschieben.

Ich denke, dass der Befehl, der emuliert (ausgeführt) wird, wenn Secure Empty Trash ausgeführt wird, srmnicht einfach rm. Ausman srm srm removes each specified file by overwriting, renaming, and truncating it before unlinking. This prevents other people from undeleting or recovering any information about the file from the command line.

Wenn Sie 'rm' verwenden, löschen Sie die Datei tatsächlich direkt. Wenn Sie eine Datei aus dem Finder löschen, wird sie tatsächlich in den Papierkorb verschoben, dh sie wird nicht gelöscht.

Wenn Sie die Datei in den Papierkorb verschieben möchten, anstatt sie zu löschen, versuchen Sie Folgendes:

mv fileName ~/.Trash/

Dies verschiebt die Datei mit dem Namen fileName in den Papierkorb Ihres Benutzers. Das '~' bedeutet das Verzeichnis Ihres Benutzers und .Trash ist Ihr Papierkorb (der Punkt vor dem Papierkorb bedeutet, dass es sich um eine versteckte Datei handelt). Nachdem Sie diesen Befehl ausprobiert haben, öffnen Sie den Papierkorb im Finder und Ihre Datei sollte dort sein.

Auch wenn Sie mit Dateien herumspielen möchten, würde ich empfehlen, fiktive Dateien zu verwenden. Sie können Dateien einfach mit dem Touch-Befehl erstellen, der eine leere Datei erstellt, wenn sie nicht existiert:

touch newFile

Wenn Sie also meine Lösung testen möchten, sollten Sie dies tun (wobei $ die Eingabeaufforderung ist):

$touch newFile
$mv newFile ~/.Trash/

Und Sie sollten newFile im Papierkorb sehen.

Beim Verschieben einer Datei in den Papierkorb im Finder wird die Datei in das entsprechende Papierkorbverzeichnis auf diesem Dateisystem verschoben. Ihr Vorschlag kann gefährlich sein.
Deshalb empfehle ich, fiktive Dateien zu verwenden, damit Sie Ihr System nicht durcheinander bringen :o
Wenn Sie eine Datei aus dem Finder löschen, erinnert sie sich an den alten Pfad, und Sie können sie später „zurücklegen“. mv fileName ~/.Trash/tut das nicht.

Sie können verwenden rmtrash(verfügbar unter http://www.nightproductions.net/cli.htm oder mit Homebrew), das eine Datei in den Papierkorb verschiebt.

Wie heißt die Homebrew-Formel? Ich habe versucht brew search rmtrashund nichts gefunden.