DANGER!
N'exécutez pas cette commande pour la "tester" sauf si vous êtes préparé à un crash et / ou à un redémarrage forcé du système.
J'étais dans ma Virtualbox en train d'exécuter 12.04 pour essayer de compiler une application, et en attendant, je suis tombé par hasard sur un forum où un commentaire disait:
Essayez
:(){ :|: & };:
Fun, aussi, et n'avez pas besoin de root.
Sans réfléchir, je l'ai couru dans mon gnome-terminal. Cela a tellement retardé mon 12.04 (dans Virtualbox) que j'ai dû l'éteindre.
Ma question est qu'est-ce que cette commande fait?
: () {: |: &} ;:
command-line
lame19899
la source
la source
Réponses:
Ceci s'appelle une bombe de fourche .
:()
signifie que vous définissez une fonction appelée:
{:|: &}
signifie exécuter la fonction:
et envoyer sa sortie à la:
fonction à nouveau et l'exécuter en arrière-plan.L'
;
est un séparateur de commande.:
exécute la fonction la première fois.En gros, vous créez une fonction qui s'appelle deux fois par appel et n'a aucun moyen de se terminer. Il continuera à doubler jusqu'à ce que vous manquiez de ressources système.
Exécuter dans Virtualbox était très judicieux, sinon vous auriez dû redémarrer votre ordinateur.
la source
;
s’agit d’un séparateur de commandes. La{ ... }
partie est simplement le contenu de la fonction.|
et ce qu'il&
fait. Je comprends que vous ayez assuré le fonctionnement de la fonction mais je voulais savoir ce que font ces deux-làCeci est une soi-disant bombe à fourche mise en œuvre dans un shell.
de wikipedia:
la source
Cette commande est une version bien connue de la bombe à la fourche
Cela entraîne un manque de mémoire sur votre ordinateur en forçant un processus à l'infini. Il existe certaines garanties que vous pouvez également utiliser contre cela:
la source
Selon cela
:(){ :|: & };:
s'appelleIl est donc conseillé de ne pas l'exécuter, cela risquerait d'endommager le matériel, car cela provoquerait une exécution en boucle, pourrait provoquer un échauffement facile des ordinateurs portables.
Un autre lien explique à travers les captures d'écran ici .
la source
Comme on l'explique ci-dessus, il s'agit d'une « bombe à la fourchette ». Une autre façon de procéder consiste à utiliser une exécution en arrière-plan plutôt que des canalisations:
la source