Si vous créez un fichier exécutable avec le contenu suivant et l'exécutez, il se supprimera.
Comment cela marche-t-il?
#!/bin/rm
Le noyau interprète la ligne commençant par #!
et l'utilise pour exécuter le script, en passant le nom du script; donc cela finit par courir
/bin/rm scriptname
qui supprime le script. (Comme Stéphane Chazelassouligne , scriptname
ici suffit pour trouver le script - si vous avez spécifié un chemin relatif ou absolu, qui est passé tel quel) , sinon le chemin trouvé dans PATH
est ajouté, y compris éventuellement la chaîne emptry si votre PATH
le contient et que le script se trouve dans le répertoire courant. Vous pouvez jouer avec un script echo - #!/bin/echo
- pour voir comment cela fonctionne.)
Comme hobbs l'a souligné, cela signifie que votre script est en fait un script rm
, pas un script bash
- ce dernier commencerait par #!/bin/bash
.
Voir Comment les programmes s'exécutent pour plus de détails sur la façon dont cela fonctionne sous Linux; les commentaires sur cet article donnent des détails sur d'autres plateformes. #!
s'appelle un Shebang, vous trouverez beaucoup d'informations en recherchant ce terme (merci à Aaron pour la suggestion). Comme jlp l'a souligné, vous le trouverez également appelé "pound bang" ou "hash bang" (#
est communément appelé "livre" - dans les pays qui n'utilisent pas £
- ou "hachage" et !
comme "coup"). Wikipedia a plus d'informations.