Понимание этого оператора оболочки

Я признаю, что это - домашняя работа, но я потерян в объяснении следующей командной строки:

ПРЕДУПРЕЖДЕНИЕ: Это - так называемая FORK-БОМБА! Эта командная строка может и разрушать Ваш ПК путем потребления всей RAM, и ЦП (доверяйте мне, я попробовал его...),

:(){ :|:& };:

Поскольку я знаю, что должен сделать это один, вот то, что я имею до сих пор (поиск этих символов является очень обескураживающим).

  1. Канал включает для конкатенации некоторых команд вместе так, чтобы первый вывод использовался вторым, как введено.
  2. И должен работать, команда в фоновом режиме (в основном раньше запускал что-то с оболочки, которая не должна быть заблокирована командой),

Я предполагаю что: должен разветвиться? Но здесь я полностью потерян! Я готов учиться, поэтому возможно, у кого-то есть хороший ресурс, где я могу читать об этом?

8
задан 8 June 2011 в 16:26

1 ответ

:()      # define ':' -- whenever we say ':', do this:
{        # beginning of what to do when we say ':'
    :    # load another copy of the ':' function into memory...
    |    # ...and pipe its output to...
    :    # ...another copy of ':' function, which has to be loaded into memory
         # (therefore, ':|:' simply gets two copies of ':' loaded whenever ':' is called)
    &    # disown the functions -- if the first ':' is killed,
         #     all of the functions that it has started should NOT be auto-killed
}        # end of what to do when we say ':'
;        # Having defined ':', we should now...
:        # ...call ':', initiating a chain-reaction: each ':' will start two more.

Источник: fork-бомбы на Википедию

14
ответ дан 23 November 2019 в 05:31

Другие вопросы по тегам:

Похожие вопросы: