Es gibt viele Fragen zum Rückgängigmachen eines fertigen rm
Befehls. In meinem Fall fragte mein rm: "Sind Sie sicher, dass Sie diese Datei löschen möchten?"
Und ich muss für jeden von ihnen bestätigen. Anstatt "j / n" manuell zu bestätigen:
Kann ich für den Rest "Ja" setzen, während ich nach j / n für die n-te Datei gefragt werde? (entspricht dem Kontrollkästchen "Ja zu allen" unter Windows) (Ich kenne den
yes | rm
Trick vor dem Start)Kann ich den Vorgang abbrechen, während ich nach j / n für die n-te Datei gefragt werde? (außer zum Herunterfahren der Maschine :))
Antworten:
Um Anforderung 1 zu erfüllen, müssen Sie ein komplexeres Programm verwenden, als N-mal
yes
zu sendeny
und dann darüber hinaus Tastatureingaben weiterzuleiten. Sie können es nur tun,rm
wenn Sie immer fragen (rm -i
) oder nie fragen (rm -f
).Sie können jederzeit abbrechen ,
rm
indemkill
) oderkill -9
).Dadurch werden
rm
bereits ausgeführte Dateivorgänge nicht rückgängig gemacht , es werden jedoch keine weiteren Dateivorgänge ausgeführt. Wenn derrm
Prozess derzeit zur Benutzereingabe auffordert, werden keine aktiven Dateien freigegeben, sodass das Beenden des Vorgangs lediglich die Fortsetzung verhindert.quelle
yes | head -9 | rm...
mit 9 (zum Beispiel) Ja?{ yes | head -n9; yes n; } | rm -i …
ersten 9 Dateien löschen und dann für alle verbleibenden Dateien mit "Nein" antworten (und natürlich könnte der{ … }
Teil erweitert werden, um jede mögliche Kombination von Zahlen abzudecken).rm
anstatt verdrehte, unzuverlässige Befehle zu erstellen .GNU rm unterstützt
-i
, von dem ich annehme , dass es das ist, worauf Sie sich beziehen, und bittet um Bestätigung für jede Datei, aber auch-I
, was ein wenig anders ist:Zur Frage , ob es möglich ist, eine Interaktion mit rm zu stoppen , nachdem es begonnen hat, hitting Ctrl- Csollte es tun.
quelle
Mit Ctrl+ können cSie den Vorgang abbrechen.
Wenn Sie jedoch in Ihre
.bashrc
Datei schauen , können Sie den Alias kommentieren, der die Bestätigung-i
erzwingt. Dabei wird der Parameter als erklärter Dhag verwendet.In dir
.bashrc
findest du einen Eintrag wie diesen:Wenn Sie es kommentieren,
rm -f
funktioniert Ihr Testament direktquelle
Unter
bash
können Sie einen Alias umgehen, indem Sie\
dem Befehl ein a voranstellenwird
quelle
yes | rm
Trick vor dem Start kenne