3

Я только что столкнулся с этой командой на форуме Linux, где автор предупредил, что не пытайтесь использовать эту команду для любопытства. Так что мое любопытство приходит. Что означает команда «:() {:|:&}; :" в ракушке?

1 ответ1

5

Эта вилочная бомба описана здесь

В bash можно определить функцию

function_name() { ... }

где ... реализация или тело функции

:(){ ... }

определяет функцию с именем :

:|:

запускает функцию внутри себя - то есть рекурсивно, и передает ее вывод другому вызову себя.

 & 

запускает предыдущую команду в фоновом режиме.

Так что это дает нам :(){:|:&} для определения этой функции

 ;

отделяет команду, определяющую функцию, от следующей команды в той же строке (например, cd;pwd)

 :

является последним вызовом команды, который запускает только что определенную функцию.


Как правило, я надеюсь, что ограничения на процессы и другие ресурсы для каждого пользователя ограничат эффект от подобной вилочной бомбы. В Википедии есть описание обезвреживания вилочной бомбы


Приложение: После написания этого ответа я заметил, что этот вопрос является дубликатом

Другие связанные вопросы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .