":"コマンドは何をしますか? [コピー]

いくつかのコマンドを読んでいます。explainshell.com興味深いコマンドを見つけました。

:(){ :|:& };:

私は現在OSXそれを使用しており、私が見つけることができる唯一の参照はbuiltinマニュアルページ(man builtin)にありますが、外部コマンドであるか、cshellまたはshコマンドですが、明示しているので役に立ちません。

       Command       External    csh(1)    sh(1)
       !             No          No        Yes
       %             No          Yes       No
       .             No          No        Yes
       :             No          Yes       Yes

それでは、実行は何を:しますか?

端末に出力はありません。

$ :
$

ベストアンサー1

この場合、:コマンドではなく、定義した関数の名前です。その命令:(){ :|:& };:は「フォーク爆弾」と呼ばれるものです。これは、という関数を定義し、その関数が を呼び出し、出力をにパイピングし、2番目のインスタンスを背景として配置することで構成されていることをシェルに:知らせる一連のコマンドです。最後のシーケンスでは、関数定義を終了して呼び出します。呼び出すたびに、シェルが作成する速度と同じくらい早く2つの追加コピーが実行されます。これにより、すべてのシステムリソースが使い果たされ、最終的にプロセス制限が設定されていない場合、システムの速度が遅くなったりクラッシュしたりします。::;:::

おすすめ記事