Vérification double rm dans zsh

15

Quand je fais un rm * en zsh, j'obtiens quelque chose comme ceci:

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

Tout d'abord, zsh me demande si je suis sûr de vouloir tout supprimer, puis rm demande chaque fichier spécifique.

Comment puis-je simplement avoir la vérification zsh?

ardochhigh
la source
3
Utilisez rm -f ./*. Par défaut, rmne demande rien sauf si vous ne disposez pas d'une autorisation d'écriture sur le fichier. Vous avez peut-être unalias rm='rm -i'
Stéphane Chazelas
Oh ça doit être ça - j'exécute les suppressions à partir d'un shell Vagrant, et les fichiers sont hébergés sur le système de fichiers de l'ordinateur portable. Merci
ardochhigh
2
Juste une note, zsh invite toujours sur "rm -rf *", cela peut être désactivé avecsetopt rmstarsilent
Matt

Réponses:

29

Le message «zsh: vous voulez vraiment supprimer tous les fichiers» est une fonctionnalité zsh, déclenchée spécifiquement en invoquant une commande appelée rmavec un argument qui est *ou something/*avant l'expansion glob. Vous pouvez désactiver cela avec setopt rm_star_silent.

Le message «rm: remove regular file» provient de la rmcommande elle-même. Il n'apparaîtra pas par défaut, il n'apparaît que lorsqu'il rmest invoqué avec l'option -i. Si vous ne voulez pas ce message, ne passez pas cette option. Même sans -i, rmdemande une confirmation (avec un message différent) si vous essayez de supprimer un fichier en lecture seule; vous pouvez supprimer cette confirmation en passant l'option -f.

Étant donné que vous n'avez pas transmis -ila ligne de commande, rmest probablement un alias pour rm -i(il peut également s'agir d'une fonction, d'une commande d'encapsuleur non standard ou d'un alias différent, mais l'alias rm -iest de loin le plus plausible). Certaines configurations par défaut incluent alias rm='rm -i'dans leurs fichiers d'initialisation du shell; cela peut être quelque chose que votre distribution ou votre administrateur système a configuré, ou quelque chose que vous avez récupéré quelque part et ajouté à votre fichier de configuration, puis oublié. Vérifiez votre ~/.zshrcpour une définition d'alias rm. Si vous en trouvez un, retirez-le. Si vous n'en trouvez pas, ajoutez une commande pour supprimer l'alias:

unalias rm
Gilles 'SO- arrête d'être méchant'
la source
6

La commande correcte pour désactiver la double vérification semble être setopt rm_star_silent. Pour activer la double vérification, faites setopt no_rm_star_silent.

Pour plus d'informations, consultez la page de manuel de zshoptions man zshoptionsou http://linux.die.net/man/1/zshoptions


la source
ouunsetopt rm_star_silent
evandrix
1

Si vous utilisez oh-my-zsh, le plug-in d'alias communs inclut l'alias rm -i.

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh

woohoou
la source
1
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change. - De l'avis
jayhendren
@jayhendren - ce n'est pas un lien vers la documentation, c'est un lien vers quelque chose à installer pour résoudre le problème ...
Wouter Verhelst