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 
      <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  <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  <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  <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
      

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.