rm -- --somefile
Alors que ça marche, c'est une solution qui s'appuie sur l' rm
à l'aide de getopts pour l'analyse de ses options. Il y a des applications qui n'ont leur propre analyse et vomir sur que trop (parce qu'ils pourraient ne pas nécessairement mettre en œuvre le "--
signifie la fin des options" logique).
À cause de cela, la solution vous devez vous rendre par le biais de votre crâne est celui-ci:
rm ./--somefile
Il le sera toujours, car de cette façon, vos arguments ne jamais commencer avec un -
.
En outre, si vous essayez de faire vraiment décent scripts shell, vous devez être techniquement de mettre ./
face à tous de votre nom de fichier de paramètre expansions pour éviter que vos scripts à partir de la rupture en raison de funky nom de fichier d'entrée (ou de les empêcher d'être abusé/exploités à faire des choses qu'ils ne sont pas censés faire: par exemple, rm
va supprimer les fichiers, mais ignorer les répertoires; tandis que, rm -rf *
va tout effacer. Le passage d'un nom de fichier,"-rf
" à un script ou à quelqu'un d' touch ~victim/-rf
'ing pourrait dans ce cas être utilisé pour modifier son comportement avec de très mauvaises conséquences).