Disons que j'avais un dossier nommé *
sous /
. Je sais que les commandes courantes comme rm -rf * ne fonctionneront pas. De l'aide?
Disons que j'avais un dossier nommé *
sous /
. Je sais que les commandes courantes comme rm -rf * ne fonctionneront pas. De l'aide?
Réponses:
Vous pouvez citer des arguments entre guillemets simples pour empêcher le traitement par le shell.
rm -r '/*'
Testez-le en toute sécurité en utilisant ls
(dans des dossiers contenant des fichiers):
$ ls '*'
ls: *: No such file or directory
Dans ce cas, les guillemets doubles fonctionneraient également, mais s'il y en avait un $
, ils ne le feraient pas, car le shell supposerait qu'il s'agit d'une variable:
$ ls "foo$bar"
ls: foo: No such file or directory
$ ls 'foo$bar'
ls: foo$bar: No such file or directory
Pour GNU rm
, vous pouvez également ajouter --
avant les arguments de nom de fichier pour les empêcher d'être analysés en tant qu'arguments. Cela vous permettra de supprimer des fichiers nommés -rf
sans problème.
&
) et les échapper individuellement, ce qui peut facilement devenir plus d'effort qu'une citation une fois. Je considère donc que la fuite individuelle est inférieure et j'ai publié cette alternative.
bash
page de manuel complète prend un certain temps si vous ne savez pas quoi rechercher.
rm *
cela fonctionnerait pour supprimer ce dossier.