Utilities

yes 命令的意義何在?

  • December 22, 2013

這個問題涉及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

它通常用作為互動式腳本提供答案的一種快速而骯髒的方式:

yes | rm -r large_directory

不會提示您刪除任何文件。當然,在 的情況下rm,您可以隨時提供-f以使其順利刪除目錄,但並非所有工具都如此寬容。

更新

我最近遇到的一個更相關的例子是,當您正在fsck使用文件系統時,您不想y在修復每個錯誤之前出現提示時回答:

yes | fsck /dev/foo

引用自:https://unix.stackexchange.com/questions/102484