Двойная проверка подлинности в zsh

15

Когда я делаю rm * в zsh, я получаю что-то вроде этого:

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

Сначала zsh спрашивает меня, уверен ли я, что хочу удалить все, а затем rm запрашивает каждый конкретный файл.

Как я могу просто пройти проверку zsh?

ardochhigh
источник
3
Использование rm -f ./*. По умолчанию rmничего не спрашивает, если у вас нет разрешения на запись в файл. Может быть, у вас естьalias rm='rm -i'
Стефан Chazelas
О, это должно быть так - я запускаю удаление из оболочки Vagrant, а файлы хранятся в файловой системе ноутбука. Спасибо
ardochhigh
2
Просто заметка, zsh по-прежнему запрашивает "rm -rf *", это можно отключить с помощьюsetopt rmstarsilent
Matt

Ответы:

29

Сообщение «zsh: уверен, что вы хотите удалить все файлы» - это функция zsh, которая вызывается командой, вызываемой rmс аргументом, который является *или something/*перед расширением глоба. Вы можете отключить это с setopt rm_star_silent.

Сообщение «rm: удалить обычный файл» приходит от самой rmкоманды. Он не будет отображаться по умолчанию, он появляется только тогда, когда rmвызывается с опцией -i. Если вы не хотите это сообщение, не передавайте эту опцию. Даже без -i, rmзапрашивает подтверждение (с другим сообщением), если вы пытаетесь удалить файл только для чтения; Вы можете удалить это подтверждение, передав опцию -f.

Поскольку вы не передали -iкомандную строку, rmэто, вероятно, псевдоним для rm -i(это также может быть функция, нестандартная команда-обертка или другой псевдоним, но псевдоним rm -iявляется наиболее вероятным). Некоторые конфигурации по умолчанию включают alias rm='rm -i'в свои файлы инициализации оболочки; это может быть что-то, что настроил ваш дистрибутив или ваш системный администратор, или что-то, что вы откуда-то взяли и добавили в свой файл конфигурации, а затем забыли. Проверьте свой ~/.zshrcпсевдоним для rm. Если вы найдете один, удалите его. Если вы не нашли его, добавьте команду для удаления псевдонима:

unalias rm
Жиль "ТАК - перестань быть злым"
источник
6

Правильная команда для отключения двойной проверки вроде бы setopt rm_star_silent. Для включения двойной проверки сделайте setopt no_rm_star_silent.

Для получения более подробной информации смотрите справочную страницу для zshoptions man zshoptionsили http://linux.die.net/man/1/zshoptions


источник
илиunsetopt rm_star_silent
evandrix
1

Если вы используете oh-my-zsh, плагин common-aliases включает псевдоним rm -i.

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

woohoou
источник
1
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - Из обзора
Jayhendren
@jayhendren - это не ссылка на документацию, это ссылка на то, что нужно установить, чтобы исправить проблему ...
Wouter Verhelst