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?


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

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


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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.