Nel capitolo Concetti base di UNIX vi abbiamo spiegato come aprire una shell. In questo capitolo vi mostreremo come utilizzarla.
La principale dote della shell è il numero di programmi di utilità di cui dispone: ce ne sono migliaia, e ciascuno svolge un compito particolare. Qui ne vedremo soltanto alcuni. Una delle migliori caratteristiche di UNIX è la sua capacità di combinare questi programmi, come vedremo più avanti.
In questo contesto, la gestione dei file consiste nel copiarli, spostarli e cancellarli. Più avanti vedremo anche come fare per modificarne gli attributi (proprietario, permessi).
Il comando mkdir (MaKe DIRectory) viene utilizzato per creare le directory. La sua sintassi è semplice:
mkdir [opzioni] <directory> [directory ...] |
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;
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 docs: crea la directory misc nella directory images creando per prima quest'ultima, se non esiste già (-p); inoltre crea una directory docs nella directory corrente.
Il comando touch non è nato con la funzione di creare dei file, ma quella di aggiornare le date di accesso e di modifica dei file [1] . Se il file prima non esisteva, tuttavia, touch provvederà a creare i file desiderati come file vuoti. La sintassi è:
touch [opzioni] file [file...] |
Quindi lanciando il comando
touch file1 images/file2 |
verranno creati un file vuoto chiamato file1 nella directory corrente, e un file vuoto file2 nella directory images.
Il comando rm (ReMove) sostituisce due comandi DOS, del e deltree, rispetto ai quali dispone di più opzioni. Ecco la sua sintassi:
rm [opzioni] <file|directory> [file|directory...] |
-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.
-i: richiede una conferma prima di ogni cancellazione. Si noti che, come opzione predefinita, per motivi di sicurezza in Mandrake Linux rm non è che un alias per rm -i; lo stesso vale per i comandi cp e mv. L'utilità di questi alias varia a seconda dell'utente (sono comunque molto utili per i principianti). Se volete rimuoverli, è sufficiente modificare il file .bashrc aggiungendo questa riga: unalias rm cp mv.
-f: l'opposto dell'opzione -i, forza la cancellazione di file e directory, anche se l'utente non ha i diritti di scrittura sui file[2].
Alcuni esempi:
rm -i 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. Rispondete y per confermare la cancellazione, n per annullarla.
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.
![]() | Un file cancellato usando rm è perduto in maniera definitiva. Non c'è alcun modo per recuperare il file! Non esitate a utilizzare l'opzione -i in modo da esser sicuri di non cancellare nulla per errore... |
La sintassi del comando mv (MoVe) è la seguente:
mv [opzioni] <file|directory> [file|directory ...] <destinazione> |
Alcune opzioni:
-f: forza lo spostamento dei file – non avvisando se qualche file preesistente viene sovrascritto dall'operazione.
-i: l'opposto – richiede all'utente una conferma prima di sovrascrivere un file esistente.
-v: modalità prolissa (ingl. verbose), riporta tutte le modifiche effettuate.
Alcuni esempi:
mv -i /tmp/pics/*.png .: sposta tutti i file nella directory /tmp/pics/ il cui nome finisce con .png nella directory corrente (.), richiedendo una conferma prima di sovrascrivere qualsiasi file.
mv foo bar: rinomina il file foo come bar. Se esisteva già una directory bar, l'effetto di questo comando sarebbe stato di spostare 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.
Il comando 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> |
cp ha moltissime opzioni. Queste sono le più comuni:
-R: copia ricorsiva; obbligatorio se si vuole copiare una directory, anche se vuota.
-i: richiede una conferma prima di sovrascrivere qualsiasi file preesistente.
-f: l'opposto dell'opzione -i, sostituisce qualsiasi file esistente senza chiedere conferma.
-v: modalità prolissa, visualizza tutte le azioni compiute dal comando cp.
Alcuni esempi:
cp -i /tmp/images/* images/: copia tutti i file nella directory /tmp/images alla directory images/ che si trova all'interno della directory attuale, richiedendo una conferma se un file sta per essere sovrascritto.
cp -vR docs/ /shared/mp3s/* mystuff/: copia l'intera directory docs più tutti i file della directory /shared/mp3s nella directory mystuff.
cp foo bar: crea una copia del file foo con il nome bar nella directory corrente.
[1] | In UNIX vi sono tre diverse date registrate assieme ai file: la data dell'ultimo accesso al file (atime), vale a dire l'ultima volta che il file è stato aperto in lettura o scrittura; la data dell'ultima volta che sono stati modificati gli attributi dell'inodo (mtime) e, infine, la data dell'ultima volta che il contenuto del file è stato modificato (ctime). |
[2] | È sufficiente per un utente possedere i diritti di scrittura su una directory per poter cancellare i file che contiene, anche se non è il proprietario di tali file. |
Indietro | Partenza | Avanti |
Breve introduzione alla linea di comando | Risali | Gestione degli attributi dei file |