Jan
12
Shell, i comandi “mv”, “cp”, “rm” e “mkdir”
Sempre più spesso le GUI entrano a far parte della nostra esperienza lato utente “soppiantando” i comandi della shell, soprattutto quelli più elementari. Forse non tutti sanno che alla fine le GUI per GNU/Linux si appoggiano ai meno utilizzati comandi shell. In questo breve articolo ne vedremo alcuni, i più importanti.
Il comando “mv”
Con il comando “mv” (move) possiamo spostare i file o le directory da un luogo sorgente ad una destinazione. Tutte le operazioni compiute con il comando “mv” vengono eseguite in locale. La sintassi del comando è la seguente:
[user@localhost:~]$ mv file_sorgente /percorso/destinazione/locale/.
Nel caso volessimo spostare un file da una directory precisa nella directory in cui ci troviamo sarà sufficiente digitare:
[user@localhost:~]$ mv /percorso/sorgente/locale/file_sorgente .
Il punto finale è molto importante e significa “qui“, sposta il file “qui“.
Per spostare più file in un unica destinazioni usare questo comando:
[user@localhost:~]$ mv file_1 file_2 file_3 /percorso/destinazione/locale/.
La stessa sintassi si usa per spostare le directory:
[user@localhost:~]$ mv -r dir_1 dir_2 dir_3 /percorso/destinazione/locale/.
Il parametro “-r” verrà visto in seguito, serve per spostare le directory non vuote. In tutti i casi il file o la directory viene “spostato“, sarà disponibile nella destinazione e non all’origine.
Il comando “cp”
Analogamente al comando “mv“, con il comando “cp” (copy) siamo in grado di copiare i file o le directory da un luogo sorgente ad una destinazione. Anche il comando “cp” opera esclusivamente in locale. La sintassi è la seguente:
[user@localhost:~]$ cp file_sorgente /percorso/destinazione/locale/.
Anche qui per spostare un file da una directory precisa nella directory in cui ci troviamo sarà sufficiente digitare:
[user@localhost:~]$ mv /percorso/sorgente/locale/file_sorgente .
Come prima il punto finale è molto importante. La sintassi per la copia di più file o directory è la medesima usata con il comando “mv“. Con il comando “cp” copiamo il file, il file verrà lasciato nella directory sorgente e duplicato nella directory destinazione.
Alcuni parametri da passare a “cp” e “mv”:
-b Creauna copia di backup di ogni file di destinazione esistente
-f Forza la sovrascrittura dei file
-i Attiva la modalità interattiva, chiede conferma prima dell’evanutale sovrascrittura di file di destinazione preesistenti
-p Mantiene, gli attributi (permessi, ownership, etc.) del file
-r Permette copia ricorsivamente le directory
-v Visualizza in output quello che il sistema ha fatto in seguito al nostro comando
Il comando “rm”
Con il comando “rm” (remove) eliminiamo file o directory. Per eliminare file e directory vuote è usata la seguente sintassi:
[user@localhost:~]$ rm file_1 file_2 directory_1
Per eliminare le directory contenenti oggetti bisogna specificare i parametri “-Rf” come segue:
[user@localhost:~]$ rm -Rf dir_1 dir_2
Se i parametri “-Rf” non vengono specificati la shell restituirà un errore.
Il comando “mkdir”
Con “mkdir” (make directory) viene creata una nuova directory. La sintassi è la seguente:
[user@localhost:~]$ mkdir nuova_directory_1
E’ possibile specificare anche un percorso (esistente o meno):
[user@localhost:~]$ mkdir /dir_esistente/nuova_dir/nuova_sottodir/
Con questa sintassi verranno create una directory e una sottodirectory nella directory madre “dir_esistente“.
Conclusioni
Sapere i comandi della shell è molto importante. Se operiamo in locale non è necessario sapere come si crea una directory o come si elimina, ma se operiamo su un computer remoto, o ad esempio su un server è necessario avere una certa conoscenza almeno dei più comuni comandi.