Supponiamo di non sapere cosa stai facendo e di provare a eseguire il backup di alcuni dischi rigidi
dd if=/dev/disk1 of=/dev/disk2
Bene, se li mixai (passa if e di), sovrascriverà i nuovi dati con i vecchi dati, senza fare domande.
Simili mescolamenti possono accadere con i programmi di archiviazione. E francamente con la maggior parte delle utilità della riga di comando.
Se vuoi un esempio di un missaggio di un personaggio che bloccherà il tuo sistema dai un'occhiata a questo scenario: vuoi spostare tutti i file nella directory corrente in un altro:
mv -f ./* /path/to/other/dir
Accettiamo il fatto che hai imparato a usare ./
per indicare la directory corrente. (Lo voglio)
Bene se ometti il punto, inizierà a spostare tutti i tuoi file. Compresi i file di sistema. Sei fortunato che non hai fatto questo. Ma se si legge da qualche parte che con 'sudo -i' non sarà più necessario digitare in sudo, si è effettuato il login come root ora. E ora il tuo sistema si sta mangiando davanti ai tuoi occhi.
Ma di nuovo penso che cose come la sovrascrittura dei miei preziosi file di codice con garbage, perché ho incasinato un personaggio o perché ho confuso l'ordine dei parametri, sono più problemi.
Diciamo che voglio controllare il codice assemblatore che gcc sta generando:
gcc -S program.c > program.s
Supponiamo che io abbia già un programma. Io uso il completamento del TAB. Sono di fretta e dimentico di TAB due volte:
gcc -S program.c > program.c
Ora ho il codice assembler nel mio program.c e nessun codice c più.
Che è almeno una vera battuta d'arresto per alcuni, ma per gli altri è un passaggio da zero.
Penso che questi siano quelli che causeranno un vero "danno". Non mi interessa davvero se il mio sistema si arresta in modo anomalo. Mi piacerebbe che i miei dati andassero persi.
Sfortunatamente questi sono gli errori che dovranno essere fatti finché non imparerai a usare il terminale con le dovute precauzioni.