Immer wenn ich rm
mehrere Elemente gleichzeitig mit Muschelkugeln versuche und es sogar die geringste Möglichkeit gibt, dass sich das Muster stärker ausdehnt, als ich es erwartet habe, versuche ich mich daran zu erinnern, -i
etwas Nützliches hinzuzufügen , aber (natürlich) könnte ich es vergessen und versehentlich wegblasen. Einige Leute versuchen, dieses Problem mit einem Alias zu lösen, alias rm='rm -i'
aber ich hasse die Idee, rm immer interaktiv zu machen, weil ich dann die Gewohnheit habe, die -f
ganze Zeit zu verwenden, was offensichtlich den ganzen Zweck zunichte macht.
Was ich tun möchte, ist, rm
nur zu verwenden, -i
wenn ich Globbing verwende, und -f
natürlich zu überschreiben -i
, damit ich trotzdem ganze Verzeichnisse mit dem Üblichen wegblasen kann rm -rf junk
.
Wäre also rm *blah*
wirklich so rm -i *blah*
, rm blah
würde aber genauso funktionieren wie eingegeben.
Für den Fall, dass es einen Unterschied gibt, wie dies in verschiedenen Shells erreicht werden kann, wähle ich eine Antwort aus, die Methoden für Bash und Zsh über Antworten liefert , die nur die eine oder die andere abdecken.
Hinweis : Ich bin nicht davon überzeugt, dass dies unbedingt eine gute Idee ist. Ich frage nur, ob es möglich ist. Wenn Sie der Meinung sind, dass dies eine dumme Idee ist, würde ich mich sehr über die Begründung Ihrer Meinung freuen, aber bitte posten Sie solche Kommentare nicht im Antwortfeld . Reale Antworten sagen mir entweder, wie ich das mache oder warum es nicht möglich ist (oder bieten möglicherweise eine alternative Methode an, um ein ähnliches Ergebnis zu erzielen). Aber wenn du mir sagen willst, warum das dumm ist, schreibe bitte einen Kommentar. Ich stimme wohlüberlegten Kommentaren zu, auch wenn ich mit der Schlussfolgerung nicht einverstanden bin.
noglob
indem Sie z. B. rm aliasen noglob my-rm
und dann mit my-rm ein Skript erstellen, das nach einem Glob sucht, diesen erweitert und -i übergibt oder nicht. Nicht sicher, weiß nicht, zsh.
myrm
und dieses Skript tun lassen, was für wundervolle Dinge Sie mögen.
rm -I
wird-i
das erst ausgelöst, wenn mehr als drei Dateien übergeben oder werden-r
. Inbash
, verwendetCtrl-x *
Abkürzung Tastatur , um die glob zu erweitern und diese selbst inspizieren.