Vor einiger Zeit habe ich fälschlicherweise meinen Home-Ordner gelöscht, weil ich ein rm -rf *
falsches Terminal verwendet 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
.
Haben Sie eine bewährte Methode, die Sie vorschlagen können?
Vielen Dank.
rm
es ein gefährlicher Befehl ist, der einen Alias für die Sicherheit erfordert. Indem Sie dier
undf
-Optionen verwenden, sagen Sie der Shell, dass dies gefährlich ist, und ich habe mir genau überlegt, und es ist wirklich das, was ich tun möchte . Wenn Sie diese Optionen nicht verwenden, können Sie damit nicht Ihren gesamten privaten Ordner löschen.rm
gewöhnen , wenn Sie einen Alias für verwenden. Dann werden Sie eines Tages auf einem System sein, auf dem der Alias nicht existiert, und Sie werden das Falsche tun, wenn Sie es am wenigsten erwarten. Und es wird wahrscheinlich nicht Ihr System sein.rm
zurm -i
.Antworten:
Wenn Sie eine maßgeschneiderte wollen
rm
, nennen Sie es nicht ,rm
aber einen Namen von Ihnen,myrm
,delete
oder was auch immer.Der
rm='rm -i'
Alias ist ein Horror, da Sie nach einer Weile erwartet werdenrm
, dass Sie vor dem Entfernen von Dateien dazu aufgefordert werden. Eines Tages wird es natürlich mit einem Konto ausgeführt, für das dieser Alias nicht festgelegt wurde, und bevor Sie verstehen, was los ist, ist es zu spät.In jedem Fall ist eine gute Möglichkeit, auf Dateiverluste oder -beschädigungen vorbereitet zu sein, das Erstellen von Sicherungen.
Eine schnelle Alternative, die Sie vor versehentlichem Löschen oder Überschreiben von Dateien schützt, ist die Verwendung eines Dateisystems, das unbegrenzte Momentaufnahmen wie ZFS unterstützt. 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.
quelle
Wenn Sie speichern Aliase möchten, wollen aber nicht zu Risiko für die Befehle Gewöhnung anders auf Ihrem System arbeiten , als auf andere, können Sie zu deaktivieren ,
rm
wie diesDann können Sie Ihren eigenen sicheren Alias erstellen, z
oder verwenden Sie
trash
stattdessen.quelle
remove
als definiertecho "rm is disabled, use trash or /bin/rm instead." -irv
. Und möchten Sie nicht, wie es allgemein üblich ist, dass sich die Nachricht vonrm
auf Ihren sicherenremove
Befehl bezieht ?Sie könnten es
trash
stattdessen mit versuchen . Denken Sie daran, es von Zeit zu Zeit zu leeren ...quelle
Ohne das Profil jedes Benutzers ändern zu müssen, können Sie die Datei -i im Verzeichnis ablegen.
quelle
.* *
eher als* .*
(was ich für üblicher halte ) oder* . *
(was du gesagt hast). ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… . Aber ich stimme zu, es ist ein ordentlicher Trick.Ich benutze das folgende Skript.
Wenn Sie eine Datei versehentlich löschen, stellen Sie sie von der wiederher
$HOME/tmp
.Das Skript verschiebt gelöschte Dateien in ein
tmp
Verzeichnis und löscht sie beim nächsten Ausführen des Löschskripts, wenn die Zugriffszeit 7 Tage später liegt (halbautomatische Bereinigung des$HOME/tmp
Verzeichnisses).quelle
In Ihrem Profil
quelle
rm -I
gibt das Beste aus beiden Welten, @jlliagre.Ein Skript
d
mit Inhaltmv $* /tmp
.edit: Das ist eine schlechte Idee; siehe unten. Ich habe derzeit
alias d='mv -t /tmp'
in meinem.profile
statt.quelle
d "foo bar"
löschen ( löscht die Dateienfoo
undbar
). Etwas sichereres ist wahrscheinlich#!/bin/bash TRASH="$( mktemp -d -t trashed.XXX )"; echo "Moving to trash $TRASH"; mv -v -- "$@" "$TRASH"
(mktemp
und diemv
Syntax hängt von Ihrem System ab, dieses funktioniert unter Linux).d
Kommandoalias d='mv -t /tmp'
in geändert.profile
. Ich denke, das ist die einfache Lösung, nach der ich gesucht habe.Dieser Bash-Code fügt die Funktion
rm
Ihrer~/.bash_profile
Konfigurationsdatei hinzu. Wenn Sie danach schreibenrm file
, verschieben Sie diese Datei nach/tmp
quelle
rm
Ihrer~/.bash_profile
Konfigurationsdatei hinzu. Wenn Sie nach dem Ausführen dieser Datei schreibenrm file
, verschieben Sie diese Datei in das/tmp
.