man linux — заметки админа

14 сентября 2008

yes — автоматизирует процесс многократных ответов на запросы других команд


Синтаксис:

yes [STRING]...

Команда yes многократно выводит строку STRING разделяемую символом новой строки (newline) на стандартный вывод, до тех пор, пока не будет принудительно завершена.
Если STRING не задано, выводится символ y и символ новой строки.

Команда yes может использоваться для автоматизации процесса ответов на запросы других команд.
Некоторые команды, просят пользователя ввести подтверждение какого-либо действия, например ввести символ y или слово yes. При этом, таких запросов может быть сотня или больше — что бы не вводить многократно ответы на запросы, можно применять команду yes
Например в случае копирования одной директории в другую, в случае совпадения имен файлов, команда cp может выдавать запросы на перезапись каждого файла и если файлов много — таких запросов может быть несколько тысяч (при этом, на каждом запросе, процесс копирования прерывается и команда ждет ответа пользователя).

Что бы не вводить многократно ответ при подобном копировании, можно применить команду yes.
Подтвердить перезапись всех файлов, при совпадении имен:

yes | cp -r /path/to/newdirectory /path/to/olddirectory

Запретить перезапись любых файлов, при совпадении имен:

yes n | cp -r /path/to/newdirectory /path/to/olddirectory

Аргументы команды yes передаются другим командам через конвейеры.
Если какая-либо команда не поддерживает конвейеры, можно попробовать использовать команду expect

Опубликовано 14 сентября 2008 - информация могла устареть.

Комментариев нет »

No comments yet.

RSS feed for comments on this post.

Leave a comment

Для отправки комментария вам необходимо авторизоваться.

Powered by WordPress