这个问题涉及yes
UNIX 和 Linux 机器中的命令:基本上,这个工具的意义(如果有的话)和历史是什么?它有实际应用吗?是否可以展示一个示例,它在脚本中有用或与其他工具链接(通过管道或重定向)?
联机帮助页如下:
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
示例输出:
$ yes why
why
why
why
why
^Cwhy
答案1
它通常被用作一种快速而肮脏的方式来为交互式脚本提供答案:
yes | rm -r large_directory
不会提示您任何文件被删除。当然,在这种情况下rm
,您始终可以提供命令-f
以使其顺利删除目录,但并非所有工具都如此宽容。
更新
我最近遇到的一个更相关的例子是,当您正在使用文件系统并且在修复每个错误之前fsck
不想在出现提示时费心回答:y
yes | fsck /dev/foo
答案2
除了文中提到的要点之外之前的回答该yes
命令还可用于测试系统上 CPU 的高负载。yes
创建一个充当虚拟 CPU 加载程序的进程,并导致 100% 处理器使用率。http://en.wikipedia.org/wiki/Yes_(Unix)
答案3
当更新 FreeBSD 工作站上的 ports 时,使用 portmaster + yes 变得非常方便:
yes | portmaster -da
这样你就可以在午餐时让机器更新,所有问题都默认填写“是,是”
什么时候重建世界对于“makedelete-old”和“makedelete-old-libs”。
这可以节省大量时间:
yes | make delete-old
和
yes | make delete-old-libs
基本上可以帮助您避免键入/确认某些要求“y”或“是”的操作