Ich benutze das Terminal täglich, ich werde oft verwenden rm DirectoryName
. Manchmal werde ich etwas ungeduldig und rm *
verzichte darauf, darüber nachzudenken, ob es sicher ist. Wie Sie sich vorstellen können, sind diese Spielereien manchmal zurückgekommen und haben mich ins Gesicht geschlagen. Weiß jemand, wie ich ein Mapping erstelle, also rm whatever
alles in den Papierkorb verschiebt, den ich dann manuell lösche.
Die Verwendung rm
zum Verschieben von Dateien in den Papierkorb ist ein Dopamin-Hit. Es ist üblich und angenehm, kann aber aus dem Zusammenhang gerissen schlecht für Sie sein.
Sie müssen sich bei der Verwendung wirklich selbst kontrollieren rm
. Vor allem, wenn Ihre Backups nicht aktuell sind oder Sie keine Zeit zum Löschen/Installieren/Wiederherstellen haben.
Stellen Sie sich vor , Sie gewöhnen sich daran, in den Müll zu wandern, und machen es sich zur Gewohnheit. Sicher, Ihr System ist sicher, aber wenn Sie sich in das Notizbuch eines Freundes (oder Ihrer Frau oder Ihres Chefs) einloggen und etwas löschen müssen? Sie werden tatsächlich das Echte verwenden rm
- diese Dateien für immer löschen. Ohne viel Vorbereitung und Qualifikation ist es eine schlechte Angewohnheit, und das müssen Sie wissen.
Installieren Sie es stattdessen rmtrash
und machen Sie es sich zur Gewohnheit, es zu verwenden:
# install rmtrash, (either from the macports or by the brew.)
$ alias trash="rmtrash"
$ alias del="rmtrash" # del / trash are shorter than rmtrash
Hier setzt die persönliche Beratung an – Verhaltensänderungen sind schwer. Eine andere Sache, die Sie tun können, um sich zur Verwendung zu zwingen, rmtrash
ist rm
, es als Alias für eine benutzerdefinierte Nachricht in Ihrer .profile
.
alias rm="echo Use 'del', or the full path i.e. '/bin/rm'"
Wenn Sie also verwenden rm
, werden Sie aufgefordert, entweder rmtrash
oder zu verwenden /bin/rm
. Denken Sie daran, dass dies nur vorübergehend ist, nach einer Weile sollten Sie den Alias entfernen.
Mach niemals so etwas:
$ pwd
/
$ cd /tnp; rm -rf *
sh: cd: /tnp: No such file or directory
Pop-Quiz: In welchem Verzeichnis wird der rm
Befehl ausgeführt? :)
&&
ist deine Lebensader. ;
ist der Teufel. PS Die Antwort ist, dass im obigen Beispiel so ziemlich alles auf Ihrem System verschwindet.trash-cli
stattdessen, z. aptitude install trash-cli
- siehe github.com/andreafrancia/trash-clibrew install trash
rmtrash
ist wirklich alt, da es zuletzt 2003 aktualisiert wurde, und es zeigt sich. Es hat viel weniger Optionen als rm
, und wenn Sie sagen, rmtrash
auf einem sekundären Volume werden diese Dateien in den Papierkorb Ihres Benutzers auf dem Systemlaufwerk verschoben, was bei großen Dateien lange dauern kann. Die trash
von parth empfohlene Option ist besser und löst das Keep-on-same-volume-Problem, aber es fehlen immer noch viele rm
Optionen.rmtrash
ist nicht mehr auf Homebrew zu finden, daher empfehle ich stattdessen die Installation trash
: brew install trash
.cd /tnp; rm -rf *
HöllenbefehlMir fallen ein Dutzend Möglichkeiten ein, dies zu codieren, aber ich weigere mich kategorisch, eine davon in eine Antwort einzugeben. Ich empfehle Ihnen dringend , Ihre Gewohnheit einzudämmen , ein wenig verrückt zu werden . Sie sollten es nicht gewohnt sein, es rm
zu verwenden, wenn Sie es nicht richtig verwenden können.
Das grundlegende Problem hier ist, dass selbst wenn Sie ein Sicherheitsnetz auf Ihrem eigenen System installieren, Ihnen das nur hilft, Ihre schlechten Gewohnheiten beizubehalten, und wenn Sie eines Tages zufällig auf einem anderen Computer sind, der nicht über denselben benutzerdefinierten Schutz verfügt, werden Sie es tun tue etwas episch Schlechtes.
Die richtige Lösung besteht darin, es so zu verwenden, rm
wie es verwendet werden sollte, einschließlich des manuellen Hinzufügens des -i
Arguments, wenn Sie Zweifel haben, wie sich ein Glob ausdehnen wird, und über gute Systemsicherungen zu verfügen, die Sie im Falle eines schwerwiegenden Benutzerfehlers wiederherstellen können. Der Versuch, "Müll" zu Befehlen hinzuzufügen, die im Rest des Universums nicht verwendet werden, ist ein halber Schritt, der das Schlimmste von beiden Welten ist.
Verwenden Sie entweder den Papierkorb oder nicht. Die Verwendungrm
wandert nicht in den Papierkorb, sondern wird entfernt.
Wenn Sie den Papierkorb verwenden möchten, spricht nichts dagegen. Gewöhnen Sie sich einfach an, den rmtrash
Befehl anstelle von zu verwenden rm
. Das wird deinem Gehirn helfen, zu verstehen, was passiert, und dich nicht in eine schlechte Angewohnheit versetzen, die dir später Kummer bereiten wird.
rm
per Definition entfernt eine Datei von der Festplatte. Es schickt es nicht in den Papierkorb. Wenn Sie sich selbst beibringen, zu verwenden, wenn Sie in den Papierkorb sendenrm
meinen , bereiten Sie sich auf eine Katastrophe vor. Wenn Sie in den Papierkorb senden möchten, verwenden Sie oder ein Programm, das für diesen Job entwickelt wurde, dann werden Sie später nicht in Alpträume laufen. Ich habe nicht gesagt, dass die Verwendung des Papierkorbs von Natur aus falsch ist, aber wenn Sie ihn verwenden möchten, verbinden Sie ihn nicht mit etwas, das nicht dafür vorgesehen ist!
rmtrash
brew install rmtrash
und hör auf zu benutzenrm
rmtrash
statt rm
.Verwenden Sie ein Befehlszeilentool wie rmtrash (das die Datei(en) normalerweise nur nach ~/.Trash verschiebt und sicherstellt, dass die Datei einen eindeutigen Namen hat) oder ein Skript, das appscript verwendet, um den Finder zum Löschen aufzurufen. Letzteres ist langsamer, fügt aber die Möglichkeit hinzu, die Option Zurücksetzen aus dem Finder zu verwenden, um die Datei einfach wiederherzustellen.
Ich habe Papierkorb verwendet, wie er in MacPorts und Homebrew enthalten ist, und rmtrash ist jetzt sehr alt und wird nicht mehr gewartet. Beim Lesen der Codeänderungen beim Bearbeiten dieser Notiz bemerkte ich jedoch, dass sie sich 2017 von der standardmäßigen Verwendung des Finders zu einer standardmäßigen Verschiebung geändert hat (was nicht das war, was ich wollte und eine große Änderung darstellt). Also werde ich mich nach einem anderen Tool umsehen.
Wie in den Kommentaren erwähnt, ist es keine gute Idee, rm zu einem Alias zu machen. Denken Sie am besten daran, das von Ihnen installierte Papierkorbprogramm direkt zu verwenden
Aber wenn du wolltest, könntest du es tun
Nachdem Sie rmtrash installiert haben, sagen Sie /usr/local/bin/rmtrash, dann können Sie einen Alias für bash erstellen
alias rm='rmtrash'
Mit können Sie \rm
rm direkt aufrufen und den Alias ignorieren
rmtrash
, tun Sie sich bitte einen Gefallen und verwenden Sie es unter seinem eigenen Namen . Aliasiere niemals Dinge, die nicht sollen rm
, rm
es wird dich eines Tages beißen.rmtrash
ist nicht kompatibel mit rm
(unterstützt nicht die gleichen Befehlszeilenparameter wie -r
), daher ist ein Alias in keinem Fall wirklich nützlichrmtrash
zu verwenden rm
. Sie sind nicht nur nicht kompatibel, sondern erzwingen auch die schlechte Angewohnheit, und Sie werden versehentlich rm
in einem anderen System verwenden, weil Sie denken, dass Sie nur rmtrash
.Ich möchte nur eine hilfreiche Gewohnheit für diejenigen hinzufügen, die dies noch nicht tun. Bevor Sie rm für irgendetwas verwenden, machen Sie zuerst 'ls' darauf. Auf diese Weise können Sie alle Dateien sehen, die Sie löschen möchten. Anstatt es erneut einzugeben, ziehen Sie einfach den vorherigen Befehl „ls“ nach oben und tauschen Sie ls gegen rm aus. Diese Gewohnheit hat viel Angst beim Aufrufen von rm reduziert.
Es gibt Möglichkeiten, sich vor schrecklichen Folgen von zu schützen rm
. Ich stimme jedoch den anderen Kommentatoren hier zu: Nur sehr wenige sind gut.
Glauben Sie nicht eine Minute, dass Ihnen das Ändern der Befehlsumgebung helfen wird. Zum Beispiel werden Sie überall im Internet Leute finden, die Folgendes empfehlen:
alias rm="rm -i"
oder
function rm()
{
echo >&2 'rm forbidden; use "/bin/rm"'
}
export -f rm
Das wird nicht funktionieren. Zeitraum. Es gibt jede Menge Anwendungsfälle, bei denen diese kleinen Salontricks Sie kläglich im Stich lassen.
Der einzige robuste Weg, den ich bisher verwendet habe, um mich vor der Gefahr zu rm
schützen, besteht darin, einen regelmäßigen Backup-Prozess über cron über die Verzeichnisse einzurichten, in denen ich arbeite. Raw UNIX erledigt dies sehr einfach für Sie, indem find
es in Verbindung mit -mtime
verwendet, um nach Dateien zu suchen, die innerhalb oder seit einer bestimmten Zeit aktualisiert wurden.
Für mich rm -i
würde das reichen, denn es fordert Sie vor dem Löschen einer beliebigen Datei auf. Etwas zusätzliche Sicherheit, die von bereitgestellt wird, safe-rm
ist jedoch überhaupt keine schlechte Idee.
Ein einfaches alias
Like rm=safe-rm -i
könnte ausreichen, rm -rf
würde aber nicht funktionieren, da -i
es von überschrieben wird -f
.
Also müssen wir dafür sorgen, dass -i
immer danach kommt -f
!
Safe-rm installieren:brew install safe-rm
Sie können immer noch mit arbeiten , aber Sie müssen im nächsten Schritt rm
die ändernRM_BIN
Bearbeiten Sie Ihr ~/.profile
(oder bash_profile oder was auch immer) und fügen Sie das folgende Code-Snippet ein (das ein alias
und ein enthält function
):
alias rm="rm_i"
function rm_i(){
RM_BIN=safe-rm # you can replace it with regular rm if you like
args=""
files=""
argsDone=0 # to make sure arguments are before the files
for var in "$@"
do
if [[ $var == \-* ]] ; then
if [ $argsDone -eq 1 ] ; then
$RM_BIN # just to show the usage of rm
return
fi
args+=" $var"
else
argsDone=1
files+=" $var"
fi
done
args+=" -i" # Put -i at the end (so rm -rf will not ignore it)
$RM_BIN $args $files
}
Schließlich , logout
und login
, damit die Aktualisierungen im .profile angewendet werden. NICHT vor einem Logout/Login verwenden!
-rf
und mit Regexes.rm -rf
OHNE nach jeder einzelnen Datei / jedem einzelnen Ordner gefragt zu werden, können Sie sie noch verwenden /bin/rm -rf
(oder safe-rm -rf
wenn Sie sie installiert hatten).rm -rf
oder rm *
mehr ;)alias rm='sudo rm'
), ist wie das Anschnallen einer Uzi an ein Küchenmesser: Eines Tages werden Sie mehr bekommen, als Sie erwartet haben, wenn Sie diese Ananas schneiden. rm etwas Kleineres als sich selbst zuzuordnen (z. B. alias rm='rmtrash'
) ist, als würde man seine Kinder mit entwaffneten Handgranaten spielen lassen und ihnen nicht beibringen, was sie eigentlich sind: Wenn sie eines Tages auf eine echte stoßen, werden sie sie nicht mit der gebotenen Vorsicht behandeln. Wie auch immer – das Aliasing von rm ist schlecht für Systemadministratoren, da mangelnde Hygiene die persönliche Sicherheit und die öffentliche Gesundheit beeinträchtigt!rm
? Außerdem ist Calebs Argument sogar noch gültiger – wenn Sie sich an ein System mit Safe-RM-Aliasing gewöhnen, werden Sie möglicherweise leichtsinnig damit und verwenden es schließlich auf einem System mit einem rm ohne Aliasing.Mac bigSur
brew install trash
alias rm='trash'
which rm
touch a.md
rm a.md
ls ~/.Trash
Benutzer6124
mv /file/to/delete ~./Trash
Fahrrad
alias rm=/bin/rm -i
sollte Sie wieder in Sicherheit bringen. Außerdem - welches Papierkorbverzeichnis soll rm verwenden? Es wird klobig, da Mac OS X ein Papierkorbverzeichnis für jedes Volume sowie einen Papierkorb auf Benutzerebene hat.Daniel Serodio
rm *
oder tunrm /path/*
Wilfried Schmidt
Fahrrad