yes コマンドは、指定した文字列を繰り返し出力し続けるコマンドです。主に、他のコマンドが入力を待っている場合に自動的に回答を提供するために使われます。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションが異なることがあります。

基本的な使い方

編集
yes [文字列]

指定した文字列を繰り返し出力し続けます。文字列を省略した場合は y が繰り返し出力されます。

y を繰り返し出力

編集
yes

y を無限に繰り返し出力します。

任意の文字列を繰り返し出力

編集
yes "こんにちは"

こんにちは を無限に繰り返し出力します。

文字列を指定した回数だけ繰り返し出力

編集
yes "OK" | head -n 5

OK を 5 回だけ出力します(head コマンドで制限)。

他のコマンドに自動で入力を渡す

編集

例えば、rm コマンドで確認を自動的に「はい」で答える場合:

yes | rm -i *.txt

rm コマンドの確認プロンプトに対して自動的に「y」を入力します。

FreeBSD 版との違い

編集

yes コマンドは FreeBSD にも含まれていますが、GNU 版といくつか異なる挙動がある場合があります。

主な違い

編集
  1. 無限出力の挙動
    FreeBSD 版では、文字列を繰り返し出力する挙動が異なる場合がありますが、基本的な動作はほぼ同じです。
  2. GNU coreutils 版を FreeBSD で使う方法
    coreutils パッケージをインストールすると、GNU 版の yes コマンドが gyes という名前で使えるようになります。
    pkg install coreutils
    gyes "指定した文字列"
    

詳しくは、それぞれの環境で man yes を確認してください。