“yes”命令的意义是什么?

“yes”命令的意义是什么?

这个问题涉及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

示例输出:

$ 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”或“是”的操作

相关内容