Aktivieren Sie eine Bestätigung beim Löschen von Dateien und Ordnern mit dem Befehl rm

Die meisten Befehlszeilenbenutzer wissen, dass der Befehl "rm" zum Entfernen und Löschen von Dateien ziemlich mächtig ist und in der Lage ist, jede Datei im Dateisystem zu löschen - egal, ob sie entfernt werden soll oder nicht. Sobald Sie Wildcards und sudo, rm und srm hinzufügen, weil sie exponentiell potenter und potentiell gefährlich sind, können fortgeschrittene Benutzer, die der rm-Funktion eine Sicherheitsstufe hinzufügen möchten, einen Bestätigungsdialog mit den Befehlen rm und srm aktivieren. Dies bietet auch einen hilfreichen Schutzmechanismus für diejenigen, die die Befehlszeile lernen und zwischen dem sofortigen Löschen von Dateien und ihrer Befehlsausführung eine Verifizierungsschicht platzieren möchten.

Dieser Trick besteht aus zwei Teilen: Der erste besteht darin, das richtige Flag zu kennen, um eine Bestätigung zu aktivieren und zu verwenden, bevor eine Datei oder ein Ordner mit rm gelöscht wird, und der zweite verwendet einen Alias, um das zuvor erwähnte Entfernen mit Bestätigung in die neue Standardoption zu übernehmen für den RM-Befehl. Beide Tricks funktionieren in Mac OS X, Linux und den meisten anderen Unix-Varianten, daher ist es weitgehend unabhängig vom Betriebssystem, und es funktioniert auch mit dem mächtigen Befehl srm secure remove. Dies richtet sich offensichtlich an fortgeschrittene Benutzer, die mit der Befehlszeile vertraut sind, da rm und srm für Anfänger nicht geeignet sind.

Verwenden des Befehls rm mit Bestätigung vor dem Löschen von Dateien und Ordnern

Die Syntax zum Aktivieren einer Bestätigung vor dem Entfernen von Dateien mit rm (oder srm) ist einfach ein -i-Flag, das folgendermaßen verwendet wird:

rm -i filename

Wenn Sie beispielsweise eine Datei mit dem Namen "theSampleFile.zip" löschen und vor dem Entfernen des Befehls eine Bestätigung wünschen, verwenden Sie die folgende Syntax:

rm -i theSampleFile.zip

Sobald Sie auf Return drücken, werden Sie gefragt, ob Sie den fraglichen Dateinamen entfernen möchten oder nicht. Der Befehl wiederholt die genaue Datei, bevor sie gelöscht wird.

% rm -i theSampleFile.zip
remove theSampleFile.zip? y

Wenn Sie "y" und return drücken, wird ein "Ja" angezeigt, um die Datei zu löschen. Wenn Sie auf "n" drücken und die Taste zurücksenden, wird dies mit Nein beantwortet und die Datei wird nicht entfernt.

Die rm -i-Syntax funktioniert sogar mit -r, um eine Bestätigung zu erhalten, bevor Verzeichnisse und Dateiinhalte von enthaltenen Unterordnern rekursiv gelöscht werden:

rm -ir /Example/Folder/

Wieder müssen Sie ay oder n ausgeben, bevor der Befehl für jede einzelne Datei im Verzeichnis abgeschlossen wird.

Wenn Sie denselben Bestätigungsdialog mit srm aufrufen, wird auch das Flag -i verwendet:

srm -i /Example/file.zip

Auch hier würden Sie mit den Tasten y und n die Entfernung der angegebenen Dateien bestätigen oder ablehnen.

So aktivieren Sie eine 'rm'-Befehlsbestätigung standardmäßig mit einem Alias

Öffnen Sie Ihr .bash_profile oder .profile und Sie können einen Alias ​​erstellen, um die Standard-'rm'-Syntax in 'rm -i' als neuen Standard zu ändern.

alias rm='rm -i'

Sie können den gleichen Typ von Alias ​​mit srm wie folgt erstellen:

alias srm='srm -i'

Das Hinzufügen von beiden zu eindeutigen Zeilen innerhalb des Profils ist ausreichend, dann wird das Auffrischen der Shell erlauben, dass auf beide von bash, zsh, tcsh zugegriffen werden kann oder welche Shell auch immer verwendet wird.

Haben Sie noch weitere Tipps zum Schutz von rm und srm in der Befehlszeile, bevor Sie Dateien entfernen? Lassen Sie es uns in den Kommentaren wissen. Und wenn Sie nur mehr interessante Befehlszeilentipps erfahren möchten, durchsuchen Sie unsere Beiträge zum breiten Thema.