Wenn ich ein rm * in zsh mache, bekomme ich so etwas:
2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y
Zuerst fragt mich zsh, ob ich sicher bin, dass ich alle löschen möchte, und dann fragt rm nach jeder bestimmten Datei.
Wie kann ich nur die zsh-Bestätigung haben?
rm -f ./*
. Fragt standardmäßigrm
nichts, es sei denn, Sie haben keine Schreibberechtigung für die Datei. Vielleicht haben Sie einealias rm='rm -i'
setopt rmstarsilent
Antworten:
Die Meldung "zsh: Sicher, dass Sie alle Dateien löschen möchten" ist eine zsh-Funktion, die speziell durch Aufrufen eines Befehls ausgelöst wird, der
rm
mit einem Argument aufgerufen wird, das*
odersomething/*
vor der Glob-Erweiterung aufgerufen wird . Sie können dies mit ausschaltensetopt rm_star_silent
.Die Meldung "rm: reguläre Datei entfernen" stammt aus dem
rm
Befehl selbst. Es wird standardmäßig nicht angezeigt, sondern nur, wennrm
es mit der Option aufgerufen wird-i
. Wenn Sie diese Nachricht nicht möchten, übergeben Sie diese Option nicht. Auch ohne-i
,rm
Aufforderungen zur Bestätigung (mit einer anderen Nachricht) , wenn Sie versuchen , eine schreibgeschützte Datei zu löschen; Sie können diese Bestätigung entfernen, indem Sie die Option übergeben-f
.Da Sie
-i
die Befehlszeile nicht übergeben haben ,rm
handelt es sich vermutlich um einen Alias fürrm -i
(dies kann auch eine Funktion, ein nicht standardmäßiger Wrapper-Befehl oder ein anderer Alias sein, aber der Aliasrm -i
ist bei weitem der plausibelste). Einige Standardkonfigurationen sindalias rm='rm -i'
in ihren Shell-Initialisierungsdateien enthalten. Dies kann etwas sein, das Ihre Distribution oder Ihr Systemadministrator eingerichtet hat, oder etwas, das Sie irgendwo abgeholt und zu Ihrer Konfigurationsdatei hinzugefügt und dann vergessen haben. Überprüfen Sie Ihre~/.zshrc
Alias-Definition fürrm
. Wenn Sie einen finden, entfernen Sie ihn. Wenn Sie keinen finden, fügen Sie einen Befehl hinzu, um den Alias zu entfernen:quelle
Der richtige Befehl zum Deaktivieren der doppelten Überprüfung scheint zu sein
setopt rm_star_silent
. Um die doppelte Überprüfung zu aktivieren, tun Siesetopt no_rm_star_silent
.Weitere Informationen finden Sie auf der Manpage zu zshoptions
man zshoptions
oder http://linux.die.net/man/1/zshoptionsquelle
unsetopt rm_star_silent
Wenn Sie oh-my-zsh verwenden, enthält das Common-Aliase-Plugin den Alias rm -i.
https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh
quelle