Etwas, worüber ich mich wunderte, als ich ungefähr ein Dutzend Bilder von meinem Computer löschte: Mit einem schnellen rm -rf
Befehl über den Inhalt des Verzeichnisses waren alle Bilder im Handumdrehen verschwunden. Wenn ich ungefähr ein Dutzend Bilder in einen Papierkorb ziehe, dauert es manchmal 10 Sekunden oder länger.
Jetzt bin ich sicher, dass ein Teil davon vom Overhead der GUI und dergleichen stammt, und ein Teil davon kann die Tatsache sein, dass die Datei in irgendeiner Form noch "existiert", wenn sie in den Papierkorb verschoben wird, aber gibt es noch etwas anderes Konten für eine so große zeitliche Disparität? Sind "rm" und "delete" so grundlegend unterschiedliche Befehle, dass ich versuche, Äpfel und Apfelsinen zu vergleichen?
linux
command-line
Jordan Plahn
quelle
quelle
Antworten:
Wie Sie zu Recht bemerkt haben, "löscht" die Benutzeroberfläche nicht nur die Dateien.
Kehrt einfach in Ordner zurück und löscht die Dateien und Ordner, die sich dort befinden.
Die GUI durchsucht zuerst den gesamten Baum, um herauszufinden, was sich dort befindet (damit sie weiß, wie viel sie zum Zeichnen der hübschen Leiste tun muss), und durchsucht dann den Baum erneut, um die Dateien vom aktuellen Speicherort zum Speicherort der zu verschieben Mülleimer-Dateien für Ihre spezifische GUI. Das Verschieben dauert länger, da zuerst ein neuer eindeutiger Dateiname generiert, die Datei im Papierkorbordner verknüpft, dann die Verknüpfung zum aktuellen Ordner aufgehoben und ein Index darüber aktualisiert werden muss, woher die Dateien stammen, damit sie "rückgängig" gemacht werden können. viele Operationen statt nur einer.
In Gnome 3 werden die Dateien beispielsweise an den folgenden Speicherort verschoben:
Dabei
filename
handelt es sich um den ursprünglichen Dateinamen undversion
um eine inkrementelle Versionsnummer, um sicherzustellen, dass die Datei eindeutig ist (die erste Dateiinstanz hat keine Versionsnummer). Damit verbunden ist eine.trashinfo
im Ordner gespeicherte Datei:Diese Datei enthält den ursprünglichen Pfad der Datei vor dem Löschen sowie das Datum und die Uhrzeit des Löschens dieser Datei.
All diese zusätzlichen Vorgänge, die für jede einzelne Datei in dem zu löschenden Baum ausgeführt werden müssen, stellen sicher, dass Sie alle Dateien aus dem Papierkorb wiederherstellen können und dass Sie Dateien mit dem gleichen Namen aus dem Ordner löschen können gleichen Speicherort und noch ältere Versionen wiederherstellen.
Nichts davon wird mit einem einfachen
rm
odermv
Befehl gemacht.quelle
trash-cli
scheint es nicht rekursiv zu tun. Verschiebt Gnome 3 beim Löschen eines Ordners wirklich eine.trashinfo
Datei rekursiv für jeden Unterordner und alle enthaltenen Dateien?