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.