1. Comandi per la gestione dei file

Tutti i vostri dati sono contenuti all'interno di file: documenti di ufficio, canzoni, filmati, etc. Vi presenteremo alcuni comandi per organizzare e gestire tali file.

1.1. Elencare il contenuto di una directory

ls (LiSt) corrisponde al comando DOS dir. Questa è la sua sintassi:

ls [opzioni] <directory> [directory ...]

Le opzioni più comuni sono:

  • -R: elenca il contenuto della directory e di tutte le sue sottodirectory in maniera ricorsiva. Si noti che prima di mostrare il contenuto di una directory viene riportato il nome stesso della directory.

  • -l: viene usato il formato di elenco più completo, mostrando dettagli relativi ai file come il tipo, i permessi, il proprietario e le dimensioni.

  • -a: mostra anche i file nascosti. Nei sistemi UNIX® tutti i file il cui nome comincia con un punto (.) sono nascosti, pertanto è necessario usare questa opzione perché compaiano nell'elenco. Se non volete che vengano visualizzate la directory corrente e quella superiore (più precisamente . e ..) usate l'opzione -A invece di -a.

Alcuni esempi:

  • ls -lA /tmp/movies /tmp/images: elenca il contenuto delle directory movies e images che si trovano all'interno di /tmp, visualizzando i dettagli relativi ai file e i file nascosti, ma senza mostrare le entrate . e .. per ciascuna directory;

  • ls -R ~/: elenca in maniera ricorsiva tutti i file e le directory che si trovano all'interno della vostra directory personale.

1.2. Copiare file e directory

cp (CoPy) corrisponde a due comandi DOS, copy e xcopy, rispetto ai quali dispone di più opzioni. Questa è la sua sintassi:

cp [opzioni] <file|directory> [file|directory ...] <destinazione>

Le opzioni più comuni sono:

  • -R: copia ricorsiva; obbligatorio se si vuole copiare una directory, anche se vuota.

  • -f: sostituisce qualsiasi file esistente senza chiedere conferma. Usare con attenzione!.

  • -a: modalità archivio, mantiene tutti gli attributi dei file copiati ed effettua una copia ricorsiva.

  • -v: modalità prolissa, visualizza tutte le azioni compiute dal comando cp.

Alcuni esempi:

  • cp -f /tmp/images/* images/: copia tutti i file dalla directory /tmp/images alla directory images/, che si trova all'interno della directory corrente. Attenzione: non sarà richiesta conferma nel caso un file debba essere sovrascritto.

  • cp -vR docs/ /shared/mp3s/* mystuff/: copia l'intera directory docs più tutti i file della directory /shared/mp3s nella directory mystuff, mostrando tutte le azioni eseguite.

  • cp foo bar: crea una copia del file foo con il nome bar nella directory corrente.

1.3. Spostare o rinominare dei file

mv (MoVe) corrisponde al comando DOS move. La sua sintassi è come segue:

mv [opzioni] <file|directory> [file|directory ...] <destinazione>

Si noti che nel caso si debbano spostare più file la destinazione dev'essere una directory. Per rinominare un file è sufficiente «spostarlo» al suo nuovo nome.

Le opzioni più comuni sono:

  • -f: forza lo spostamento dei file. Non avvisa se qualche file preesistente viene sovrascritto dall'operazione: usare con attenzione!

  • -v: modalità prolissa, (ingl. verbose), riporta tutte le modifiche effettuate.

Alcuni esempi:

  • mv /tmp/pics/*.png .: sposta tutti i file il cui nome finisce con .png dalla directory /tmp/pics/ a quella corrente (.).

  • mv foo bar: rinomina il file foo come bar. Se esisteva già una directory bar, l'effetto di questo comando sarebbe stato di spostare il file foo o l'intera directory foo (la directory stessa più tutti i file e le directory che contiene, ricorsivamente) all'interno della directory bar.

  • mv -vf file* images/ trash/: sposta dalla directory corrente, senza chiedere conferma, tutti i file il cui nome comincia per file e l'intera directory images/ nella directory trash/, e mostra tutte le operazioni effettuate.

1.4. Cancellazione di file o directory

Il comando rm (ReMove) corrisponde a due comandi DOS, del e deltree, rispetto ai quali dispone di più opzioni. Ecco la sua sintassi:

rm [opzioni] <file|directory> [file|directory...]

Le opzioni più comuni sono:

  • -r, o -R: cancella ricorsivamente. Questa opzione è obbligatoria per cancellare una directory, vuota o meno. Per cancellare directory vuote, comunque, si può usare anche il comando rmdir.

  • -f: forza la cancellazione di file e directory. Usare con attenzione!

Alcuni esempi:

  • rm images/*.jpg file1: cancella tutti i file il cui nome termina con .jpg nella directory images e il file file1 nella directory corrente, richiedendo una conferma per ciascun file.

  • rm -Rf images/misc/ file*: cancella, senza chiedere conferma, l'intera directory misc/ nella directory images/ insieme a tutti i file che si trovano nella directory corrente e il cui nome comincia con file.

[Avvertimento] Avvertimento

Un file cancellato usando rm è perduto in maniera definitiva. Non c'è un modo semplice per recuperare il file! Prestate particolare attenzione nell'uso dell'opzione -f, che evita la richiesta di conferma, in modo da essere sicuri di non cancellare qualcosa per errore.

1.5. Creare una directory

mkdir (MaKe DIRectory) corrisponde a due comandi DOS, mkdir e md. Questa è la sua sintassi:

mkdir [opzioni] <directory> [directory ...]

Solo l'opzione -p merita di essere commentata. Questa ha due usi particolari:

  1. creerà le directory superiori se in precedenza non esistevano. Se non la si specifica mkdir non avrà successo e si lamenterà per il fatto che le directory indicate non esistono;

  2. terminerà senza messaggi di errore se la directory che intendiamo creare esiste già. Come prima, se si omette l'opzione -p, mkdir non avrà successo, e si lamenterà per il fatto che tale directory è già presente.

Ecco alcuni esempi:

  • mkdir foo: crea la directory foo nella directory corrente;

  • mkdir -p images/misc: crea la directory misc nella directory images creando per prima quest'ultima, se non esiste già.

1.6. Cambiare la directory di lavoro

La directory di lavoro corrente, simbolizzata da un punto (.), è il punto del file system in cui vi trovate. Il doppio punto (..) rappresenta la directory che si trova a «un livello superiore» del file system rispetto a quella corrente.

cd (Change Directory) vi permette di navigare la struttura del file system. La sua sintassi è la seguente:

cd <directory>

Alcuni esempi:

  • cd /tmp/images: vi porta nella directory images all'interno della directory /tmp;

  • cd -: vi porta nella directory di lavoro in cui vi trovavate prima di spostarvi;

  • cd: vi porta nella vostra directory personale (home);

  • cd ~/images: vi porta nella directory images all'interno della vostra directory personale.