Supposons que vous ne sachiez pas ce que vous faites et tentez de sauvegarder un disque dur
dd if=/dev/disk1 of=/dev/disk2
Eh bien, si vous les mélangez (changez si et de), cela écrasera les nouvelles données avec les anciennes données, sans poser de questions.
Des mélanges similaires peuvent se produire avec des utilitaires d'archives. Et franchement avec la plupart des utilitaires de ligne de commande.
Si vous souhaitez un exemple de confusion d'un caractère susceptible de bloquer votre système, examinez le scénario suivant: vous souhaitez déplacer tous les fichiers du répertoire actuel vers un autre:
mv -f ./* /path/to/other/dir
Acceptons le fait que vous avez appris à utiliser ./
pour désigner le répertoire actuel. (Oui) Si vous omettez le point, tous vos fichiers seront déplacés . Y compris vos fichiers système. Vous avez de la chance de ne pas avoir vu ça. Mais si vous lisez quelque part que, avec 'sudo -i', vous ne devrez plus jamais taper sudo, vous êtes maintenant connecté en tant que root. Et maintenant, votre système se mange devant vos yeux.
Mais encore une fois, je pense que des choses comme écraser mes précieux fichiers de code avec des ordures, parce que j'ai foiré un caractère ou parce que j'ai mélangé l'ordre des paramètres, est plus un problème.
Supposons que je veuille vérifier le code assembleur généré par gcc:
gcc -S program.c > program.s
Supposons que j'ai déjà eu un programme et que j'utilise la complétion par tabulation. Je suis pressé et j'oublie de taper deux fois:
gcc -S program.c > program.c
Maintenant, j'ai le code assembleur dans mon programme.c et plus de code c. Ce qui est au moins un réel revers pour certains, mais pour d’autres, c’est le temps de repartir à zéro.
Je pense que ce sont ceux qui vont causer un véritable "préjudice". Je ne me soucie pas vraiment si mon système tombe en panne. Je voudrais que mes données soient perdues.
Malheureusement, ce sont les erreurs qui devront être faites jusqu'à ce que vous appreniez à utiliser le terminal avec les précautions appropriées.