这个问题与yesUNIX 和 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
Run Code Online (Sandbox Code Playgroud)
示例输出:
$ yes why
why
why
why
why
^Cwhy
Run Code Online (Sandbox Code Playgroud)
Jos*_* R. 111
它通常用作为交互式脚本提供答案的快速而肮脏的方式:
yes | rm -r large_directory
Run Code Online (Sandbox Code Playgroud)
不会提示您删除任何文件。当然,在 的情况下rm,您可以随时提供-f以使其蒸汽滚动目录删除,但并非所有工具都如此宽容。
更新
我最近遇到的一个更相关的例子是,当你正在fsck处理一个文件系统并且你不想y在修复每个错误之前在提示时费心回答:
yes | fsck /dev/foo
Run Code Online (Sandbox Code Playgroud)
cof*_*Mug 27
除了上一个答案中提到的要点之外,该yes命令还可用于测试系统上的高 CPU 负载。yes创建一个充当虚拟 CPU 加载程序并导致 100% 处理器使用率的进程。http://en.wikipedia.org/wiki/Yes_(Unix)
nba*_*ari 12
在 FreeBSD 工作站上更新端口时,使用 portmaster + yes 变得非常方便:
yes | portmaster -da
Run Code Online (Sandbox Code Playgroud)
这样你就可以在午餐时让机器更新,所有问题都默认为“y,yes”
当重建世界对“使删除老”和“做删除,老库”。
这是一个很大的节省时间:
yes | make delete-old
Run Code Online (Sandbox Code Playgroud)
和
yes | make delete-old-libs
Run Code Online (Sandbox Code Playgroud)
基本上可以帮助您避免输入/确认要求“y”或“yes”的某些操作