Vor einiger Zeit habe ich versehentlich meinen Home-Ordner gelöscht, weil ich ihn rm -rf *
auf dem falschen Terminal ausgeführt habe, dessen Arbeitsverzeichnis der Home-Ordner war!
Ich wünschte, ich hätte einen Alias für den rm
Befehl, aber das war nicht der Fall.
Jetzt plane ich, ein Skript als Alias für zu erstellen rm
.
Können Sie Best Practices vorschlagen?
Danke.
Antwort1
Wenn Sie ein individuelles wünschen rm
, geben Sie ihm nicht rm
den Namen, sondern einen Ihrer Wahl, myrm
, delete
oder was auch immer.
Der rm='rm -i'
Alias ist ein Horror, denn nach einer Weile der Nutzung erwarten Sie, rm
dass Sie standardmäßig aufgefordert werden, Dateien zu löschen. Natürlich werden Sie es eines Tages mit einem Konto ausführen, für das dieser Alias nicht festgelegt ist, und bevor Sie verstehen, was los ist, ist es zu spät.
In jedem Fall sind Backups eine gute Möglichkeit, sich auf den Verlust oder die Beschädigung von Dateien vorzubereiten.
Eine schnelle Alternative, die Sie vor versehentlichem Löschen oder Überschreiben von Dateien schützt, ist die Verwendung eines Dateisystems, das unbegrenzte Snapshots unterstützt, wie ZFS. Wenn häufige Snapshots automatisch erstellt werden, können Sie die Dateien in dem Zustand wiederherstellen, in dem sie sich beim letzten Snapshot vor dem Vorfall befanden.
Antwort2
Wenn Sie Aliase speichern möchten, aber nicht riskieren möchten, sich daran zu gewöhnen, dass die Befehle auf Ihrem System anders funktionieren als auf anderen, können Sie dies rm
wie folgt deaktivieren
alias rm='echo "rm is disabled, use remove or trash or /bin/rm instead."'
Dann können Sie Ihren eigenen sicheren Alias erstellen, zB
alias remove='/bin/rm -irv'
oder verwenden Sie trash
stattdessen.
Antwort3
Sie könnten es mittrash
stattdessen. Denken Sie nur daran, es ab und zu zu leeren ...
Antwort4
Ich verwende das folgende Skript.
#!/bin/sh
trash=$HOME/tmp
mv "$@" $trash
nohup find "$trash" -type f -atime +7 -exec /bin/rm '{}' \; 2>&1 &
Wenn Sie eine Datei versehentlich löschen, können Sie sie aus dem wiederherstellen $HOME/tmp
.
Das Skript verschiebt gelöschte Dateien in ein tmp
Verzeichnis und löscht diese beim nächsten Durchlauf des Löschskripts, wenn der Zugriffszeitpunkt 7 Tage später liegt (halbautomatische Bereinigung des $HOME/tmp
Verzeichnisses).