• [^] # Re: De la pertinence du KISS et d l’anticipation des besoins futurs

    Posté par . En réponse au journal Le sophisme du meilleur outil. Évalué à 2.

    Oui, c'est sur que rm -rf / toto avec des backticks, ca va pas donner le résultat escompté, vu que c'est un passthrough direct sur le shell. Ruby ne va pas magiquement échapper les paths. Ce qui était précisément le point de mon message: a un cout presque nul, tu peux éviter les plus gros pièges du shell. Au pire, tu te retrouves avec les meme problèmes que le shell, tout en ayant probablement une solution qui te prendrait 20 minutes a trouver.

    D'ou l'intérêt d'utiliser les packages natifs, genre FileUtils. Les methods sont meme nommées apres les commande de base.

    Ce bout de code fait exactement ce que tu veux qu'il fasse (plutot que d'effacer tout /tmp)

    require 'fileutils'
    FileUtils.mkdir_p("/tmp/ toto")
    FileUtils.rm_rf("/tmp/ toto")

    Idem avec ton -f:

    require 'fileutils'
    FileUtils.chdir("/tmp")
    FileUtils.touch("-f")
    # plus loin dans un shell:
    ll /tmp/
    -rw-r--r-- 1 groumly wheel 0B 20 nov 11:45 -f