97

This question concerns the yes command found in UNIX and Linux machines: Basically, what is the point (if any) and history of this tool? Are there practical applications for it? Can an example be shown where it is useful in a script or chained (via pipe or redirect) with another tool?

The manpage is below:

YES(1) BSD General Commands Manual YES(1) NAME yes -- be repetitively affirmative SYNOPSIS yes [expletive] DESCRIPTION yes outputs expletive, or, by default, ``y'', forever. HISTORY The yes command appeared in 4.0BSD. 4th Berkeley Distribution June 6, 1993 4th Berkeley Distribution 

Sample output:

$ yes why why why why why ^Cwhy 
1
  • 3
    Stumbled upon this when I thought I had received a "yes" dialogue but really I had be kicked out the prompt. Surprise! yes yes yes yes yes yes yes ... Commented Apr 6, 2016 at 16:51

3 Answers 3

118

It's usually used as a quick and dirty way to provide answers to an interactive script:

yes | rm -r large_directory 

will not prompt you about any file being removed. Of course in the case of rm, you can always supply -f to make it steamroll the directory removal, but not all tools are so forgiving.

Update

A more relevant example of this that I recently came across is when you are fscking a filesystem and you don't want to bother answering y when prompted before fixing each error:

yes | fsck /dev/foo 
4
  • 6
    Does that mean that the yes output would cease once the rm is completed? Commented Nov 25, 2013 at 8:23
  • 25
    @JarydMalbin, yes, because that's the default behavior of SIGPIPE. Commented Nov 25, 2013 at 8:25
  • 6
    @JarydMalbin Yes it does. When rm stops reading from the pipe (read: completes), yes gets a SIGPIPE as in cjm's comment Commented Nov 25, 2013 at 8:26
  • 2
    According to the manual, fsck -y /dev/foo should do the same on some file systems. Most I'd say: the manual notes exceptions for minix and cramfs. Commented Nov 5, 2016 at 11:16
29

Beside the main point mentioned in the previous answer the yes command can also be used to test high loads of CPU on a system. yes creates a process which acts as a dummy CPU loader and results in 100% processor usage. http://en.wikipedia.org/wiki/Yes_(Unix)

0
12

When updating ports on a FreeBSD workstation, using portmaster + yes becomes very handy:

yes | portmaster -da 

That way you can let the machine update while you lunch and all the questions fill default to 'y,yes'

When rebuilding the world for 'make delete-old' and 'make delete-old-libs'.

this is a big time saver:

yes | make delete-old 

and

yes | make delete-old-libs 

Basically helps you to avoid typing / confirm certain operations that ask for a 'y' or 'yes'

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.