Gibt es ein Linux-Skript / eine Linux-Anwendung, das / die Dateien nicht löscht, sondern an einen bestimmten Speicherort im Papierkorb verschiebt? Ich möchte dies als Ersatz für rm
(vielleicht sogar als Alias für Letzteres; es gibt Vor- und Nachteile dafür).
Mit "Papierkorb" meine ich einen speziellen Ordner. Eine einzelne mv $* ~/.trash
Datei ist ein erster Schritt, aber im Idealfall sollten Sie auch mehrere Dateien mit demselben Namen in den Papierkorb werfen, ohne ältere, in den Papierkorb geworfene Dateien zu überschreiben. Außerdem können Sie Dateien mit einem einfachen Befehl (einer Art „Rückgängig“) an ihrem ursprünglichen Speicherort wiederherstellen . Außerdem wäre es schön, wenn der Papierkorb beim Neustart automatisch geleert würde (oder ein ähnlicher Mechanismus, um endloses Wachstum zu verhindern).
Hierfür gibt es Teillösungen, aber insbesondere die Aktion "Wiederherstellen" ist nicht trivial. Gibt es dafür Lösungen, die sich nicht auf ein Müllsystem aus einer grafischen Shell stützen?
(Abgesehen davon gab es endlose Diskussionen darüber, ob dieser Ansatz gerechtfertigt ist, anstatt häufige Backups und VCS zu verwenden. Obwohl diese Diskussionen einen Sinn haben, glaube ich, dass es noch eine Nische für meine Anfrage gibt.)
gvfs-trash
in der Vergangenheit verwendet, musste aber nie von der Kommandozeile wiederherstellen, bis Sie meine Neugier geweckt haben. Die Antwort auf die verknüpfte Frage kann hilfreich sein.Antworten:
Es gibt eine Spezifikation (Entwurf) für den Papierkorb auf freedesktop.org. Es ist anscheinend das, was normalerweise in Desktop-Umgebungen implementiert wird.
Eine Kommandozeilenimplementierung wäre trash-cli . Ohne genauer hinzuschauen, scheint es die Funktionalität zu bieten, die Sie wollen. Wenn nicht, teilen Sie uns mit, inwieweit dies nur eine Teillösung ist.
Was die Verwendung eines Programms als Ersatz / Alias für
rm
betrifft, gibt es gute Gründe, dies nicht zu tun. Am wichtigsten für mich sind:rm
Optionen verstehen / handhaben und entsprechend handelnquelle
rm
sodass ich sie nicht versehentlich verwenden kann (es gibt immer noch einen/bin/rm
Fall, dass ich sie wirklich brauche).Trash-cli ist eine Linux-Anwendung, die mit apt-get in Ubuntu oder yum in Fedora installiert werden kann. Mit dem Befehl
trash listOfFiles
wird die angegebene in den Papierkorb verschoben.quelle
Die vorherigen Antworten erwähnen Befehle
trash-cli
undrmtrash
. Unter Ubuntu 18.04 wird keiner von beiden standardmäßig gefunden, aber der Befehlgio
lautet. Kommandiergio help trash
Ausgänge:Ich habe es mit
gio trash FILENAME
der Befehlszeile getestet und es funktioniert so, als hätte ich die Datei im Dateibrowser ausgewählt und auf die Schaltfläche ENTF geklickt: Die Datei wird in den Papierkorb des Desktops verschoben. (Der Befehl fordert keine Bestätigung an, obwohl ich die-f
Option nicht verwendet habe .)Das Löschen von Dateien auf diese Weise ist umkehrbar, aber bequemer
rm
, alsrm -i
aus Sicherheitsgründen neu zu definieren und jeden Löschvorgang zu bestätigen. Wenn Sie versehentlich einen Löschvorgang bestätigen, den Sie nicht haben sollten, haben Sie dennoch Pech.Ich
alias tt='gio trash'
habe meiner Aliasdefinitionsdatei hinzugefügt .tt
ist eine Mnemonik für To Trash.Beim Bearbeiten am 27.06.2018 hinzugefügt: Auf Servern gibt es kein Äquivalent zu einem Papierkorbverzeichnis. Ich habe das folgende Bash-Skript geschrieben, das die Arbeit erledigt. Auf Desktop-Computern, die es verwendet
gio trash
, und auf anderen Computern werden die als Parameter angegebenen Dateien in ein von ihm erstelltes Papierkorbverzeichnis verschoben. Skript am 05.09.2019 aktualisiert.quelle
Es gibt ein kleines Hilfsprogramm namens rmtrash, das dies tut.
Es scheint nicht auf params wie
-r
oder zu reagieren-f
(es scheint im Wesentlichen nur das Verschieben der Datei / des Verzeichnisses in das ~ / .Trash-Verzeichnis zu sein), aber es überschreibt keine Dateien mit demselben Namen (es hängt "Kopieren" an gleichnamige Dateien / Verzeichnisse).Mit brauen zu installieren
quelle
Hier ist ein schnelles und unsauberes Papierkorbsystem, das mit Namenskonflikten umgeht und sogar mehrere gelöschte Dateien auf demselben Pfad zulässt, solange Sie nicht mehr als eine Datei pro Sekunde löschen.
Warnung: Ich habe diesen Code direkt in meinen Browser eingegeben. Es ist wahrscheinlich kaputt. Verwenden Sie es nicht für Produktionsdaten.
Bekannte Probleme:
trash
sollte mit Zeilenumbrüchen in Dateinamen umgehen,untrash
tut dies aber nicht, da sie darauf angewiesen sindgrep
und die Zeilenumbrüche nicht in der Metadatendatei maskiert werden.quelle
Definieren Sie zunächst eine
move_to_trash
Funktion:Dann alias
rm
dazu:Sie können immer alt rufen ,
rm
indem sie es mit einem Backslash, wie dies zu entkommen:\rm
.Ich weiß nicht, wie ich das Papierkorbverzeichnis beim Neustart leeren soll (abhängig von Ihrem System müssen Sie möglicherweise die
rc*
Skripte überprüfen), aber es könnte sich auch lohnen, einecron
Aufgabe zu erstellen , die das Verzeichnis regelmäßig leert.quelle
rm
und los geht's.del
könnte eine bessere Wahl sein.Sie können meine del verwenden:
http://fex.belwue.de/fstools/del.html
del verschiebt Dateien in ein .del / -Unterverzeichnis (und zurück)
quelle
In KDE 4.14.8 habe ich den folgenden Befehl verwendet, um Dateien in den Papierkorb zu verschieben (als ob sie in Dolphin entfernt worden wären):
Anhang I: Ich habe über den Befehl mit
Anhang II: Die Funktion (dann in Ihrer .bashrc-Datei ausgeben)
quelle