Per creare, copiare, rimuovere file e per modificarne i permessi si possono usare i seguenti comandi.
Tabella 3-3. Comandi di gestione dei file
Comando/Sintassi | Cosa fa |
---|---|
chgrp [opzioni] gruppo file | cambia il gruppo assegnato ad un file |
chmod [opzioni] file | cambia i permessi di accesso a file o directory |
chown [opzioni] proprietario file | cambia il proprietario di un file; può essere usato solamente dal super-user |
cp [opzioni] file1 file2 | copia file1 in file2; file2 non dovrebbe già esistere. Questo comando crea o sovrascrive file2 |
mv [opzioni] file1 file2 | muove (rinomina) file1 in file2 |
rm [opzioni] file | elimina un file o una directory (-r rimuove
ricorsivamente le directory e il loro contenuto) (-i chiede
conferma prima di rimuove i file) |
Se si ha una certa familiarità con DOS la tabella che segue paragona i suoi simili comandi a quelli Unix in modo tale da fornire un appropriato quadro di riferimento.
Tabella 3-4. Comandi di gestione dei file Unix vs DOS
Comando | Unix | Dos |
---|---|---|
copia un file | cp | copy |
muove un file | mv | move (non supportato in tutte le versioni di Dos) |
rinomina un file | mv | rename & ren |
elimina un file | rm | erase & del |
mostra un file a schermo | cat | type |
mostra un file a schermo, una pagina alla volta | more, less, pg | type /p (non supportato in tutte le versioni di Dos) |
Il comando cp(1) copia il contenuto di un file in un altro file.
Sintassi
cp [opzioni] filename1 filename2
Opzioni generali
Esempi:
% cp filename1 filename2
Si hanno due copie del file, ognuna con un identico contenuto. Questi file sono completamente indipendenti tra loro e possono essere editati e modificati entrambi quando necessario. Ciascuno di essi ha il proprio inode, i propri blocchi di dati e il proprio elemento nella tabella di directory.
Il comando mv(1) rinomina (sposta) un file.
Sintassi
mv [opzioni] vecchio_file nuovo_file
Opzioni generali
-i |
interattivo (chiede conferma prima di procedere) |
-f |
non chiede la conferma quando si sovrascrive un file esistente (ignora -i ) |
Esempi:
% mv vecchio_file nuovo_file
Il file nuovo_file sostituisce vecchio_file. In realtà tutto quello che è stato fatto è aver aggiornato l'elemento della tabella di directory per attribuire al file il nuovo nome. Il contenuto del file rimane come era prima della rinominazione.
Il comando rm(1) elimina un file.
Sintassi
rm [opzioni] filename
Opzioni generali
-i |
interattivo (chiede conferma prima di procedere) |
-r |
rimuove una directory ricorsivamente, rimuovendo prima i file e le directory sottostanti |
-f |
non chiede conferma prima di procedere (ignora -i ) |
Esempi:
% rm filename
Visualizzando il contento della directory si vedrà che quel file non esiste
più. In realtà tutto quello che è stato fatto è aver rimosso
l'elemento dalla tabella di directory e marcato l'inode come “non usato”. Il
contenuto del file è ancora sul disco, ma ora il sistema non ha più modo di
identificare quei blocchi di dati con il nome del file eliminato. Non c'è un certo
comando per “riprendere” un file che è stato eliminato in
questo modo. Per questa ragione molti utenti alle prime armi effettuano un alias del
comando di eliminazione in rm -i dove l'opzione -i
chiede di confermare prima di rimuovere il file. Simili alias
sono generalmente messi nel file .cshrc per la shell C (vedere
il Capitolo 5).
Ciascun file e directory ha permessi che stabiliscono chi può leggerlo, scriverlo e/o eseguirlo. Per scoprire i permessi assegnati a un file,
può essere usato il comando ls(1) con l'opzione
-l
. Quando si ha la necessità di conoscere il gruppo
per il quale i permessi sono stati assegnati si può usare l'opzione -g
insieme a ls -l (solamente BSD).
Quando si usa il comando ls -lg su un file (ls -l su SysV) l'output sarà mostrato come il seguente:
-rwxr-x--- user Unixgroup size Month nn hh:mm filename
La zona dedicata ai caratteri e trattini (-rwxr-x---) è la zona che mostra il tipo di file e i permessi del file, come spiegato nella precedente sezione. Quindi la stringa di permessi dell'esempio, -rwxr-x---, permette al proprietario user del file di leggerlo, modificarlo ed eseguirlo; gli utenti del gruppo Unixgroup del file possono leggerlo ed eseguirlo; gli altri utenti del sistema non possono accedere in alcun modo al file.
Il comando per cambiare i permessi ad un elemento (file, directory, ecc.) è chmod(1) (cambio dei modi). La sintassi richiede l'uso del comando con tre cifre (rappresentanti i permessi del proprietario (u), i permessi del gruppo (g) e i permessi degli altri utenti (o)) seguite da un argomento (che può essere un nome di un file o una lista di file e directory). Oppure può essere usato con una rappresentazione simbolica dei permessi, indicando a quale utenza questi vanno applicati.
Ogni tipo di permesso è rappresentato dal proprio numero equivalente:
lettura=4, scrittura=2, esecuzione=1
o da singoli caratteri:
lettura=r, scrittura=w, esecuzione=x
Il permesso 4 o r specifica il permesso di lettura. Se i permessi desiderati sono lettura e scrittura, il 4 (rappresentante la lettura) e il 2 (rappresentante la scrittura) sono addizionati per ottenere il permesso 6. Quindi, un permesso settato a 6 vorrà concedere un permesso di lettura e di scrittura.
Alternativamente si può usare una notazione simbolica che usa un carattere rappresentativo per l'utenza a cui ci si riferisce, uno per il permesso e uno per l'operazione, dove l'operazione può essere:
Quindi per settare i permessi di lettura e di scrittura per il proprietario del file si usa nella notazione simbolica u=rw.
Sintassi
chmod nnn [lista argomenti] | modalità numerica |
chmod [chi] op [perm] [lista argomenti] | modalità simbolica |
dove nnn sono i tre numeri rappresentanti i permessi del proprietario, del gruppo e degli altri utenti; chi può essere u,g,o oppure a (tutti) e perm può essere r,w,x. Nella notazione simbolica si può separare la specifica dei permessi con una virgola, come mostrato nell'esempio qui sotto.
Opzioni generali
-f |
forza (nessun messaggio di errore viene generato se la modifica non ha avuto successo) |
-R |
discesa ricorsiva attraverso la struttura delle directory e cambio dei modi |
Esempi:
Se i permessi desiderati per il file1 sono: proprietario: lettura, scrittura ed esecuzione; gruppo: lettura ed esecuzione; altri: lettura ed esecuzione; il comando da usare è:
chmod 755 file1 oppure chmod u=rwx,go=rx file1
Nota: Quando si assegnano i permessi a un file per l'utenza gruppo e per l'utenza altri è necessario che il minimo permesso di esecuzione (inteso come permesso di accesso) per la directory nella quale il file è posizionato sia abilitato. Un semplice modo per far questo è posizionarsi nella directory nella quale i permessi devo essere garantiti e digitare:
chmod 711 . oppure chmod u=rw,+x . oppure chmod u=rwx,go=x .
dove il punto (.) indica la directory corrente.
Il proprietario di un file può essere cambiato con il comando chown(8). Su molte versioni Unix questo può essere realizzato solo dal super-user, ad esempio, un utente normale non può attribuire i suoi file ad altri proprietari. chown(8) è usato come qui sotto, dove # rappresenta il prompt di shell per il super-user.
Sintassi
Opzioni generali
Esempi:
# chown nuovo_proprietario file
Con il comando chgrp(1) tutti possono cambiare il gruppo dei propri file in un altro gruppo di appartenenza.
Sintassi
chgrp [opzioni] gruppo file
Opzioni generali
Esempi:
% chgrp nuovo_gruppo file
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.