Il file system di Unix è organizzato come la struttura ramificata di un albero a partire da root. La directory root del sistema è rappresentata dal carattere di slash in avanti (/). Le directory di sistema e quelle degli utenti sono organizzate sotto la directory root. In Unix l'utente non ha una directory root; generalmente dopo il login gli utenti vengono posizionati nella loro directory home. Gli utenti possono creare altre directory sotto la loro directory home. La tabella che segue mostra alcuni comandi per la navigazione tra directory.
Tabella 3-1. Comandi di navigazione e controllo delle directory
Comando/Sintassi | Cosa fa |
---|---|
cd [directory] | cambia directory |
ls [opzioni][directory o file] | lista il contenuto della directory o i permessi del file specificato |
mkdir [opzioni] directory | crea una directory |
pwd | mostra la directory (corrente) di lavoro |
rmdir [opzioni] directory | rimuove una directory |
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-2. Comandi di navigazione e controllo delle directory Unix vs DOS
Comando | Unix | DOS |
---|---|---|
lista il contenuto di una directory | ls | dir |
crea una directory | mkdir | md & mkdir |
cambia directory | cd | cd & chdir |
rimuove una directory | rmdir | rm & rmdir |
ritorna alla directory home dell'utente | cd | cd\ |
mostra la directory corrente di lavoro | pwd | cd |
In ogni momento si può determinare in che punto si è nella gerarchia del file system mostrando la directory di lavoro con il comando pwd(1), esempio:
% pwd /home/frank/src
Ci si può portare in una nuova directory con il comando cd(1), cambio di directory. cd(1) accetta sia path name (percorsi) assoluti sia path name relativi.
Sintassi
cd [directory]
Esempi:
cd (oppure chdir in alcune shell) | cambia directory |
cd | si posiziona nella directory home dell'utente |
cd / | si posiziona nella directory di sistema roor (/) |
cd .. | sale di un livello di directory |
cd ../.. | sale di due livelli di directory |
cd /completo/path/name/da/root | cambia directory rispetto a un path name assoluto (notare lo slash iniziale) |
cd path/da/posizione/corrente | cambia directory rispetto a un path name relativo alla posizione corrente (no slash iniziale) |
cd ~username/directory | cambia directory rispetto alla directory home dell'utente specificato (il carattere ~ non è valido nella shell Bourne; vedere il Capitolo 5). |
La gerarchia della propria directory home si estende creando sotto-directory all'interno di essa. Questo è possibile con il comando mkdir(1), crea directory. Di nuovo si può specificare un path name assoluto o relativo della directory che si vuole creare.
Sintassi
mkdir [opzioni] directory
Opzioni generali
-p |
crea una directory intermedia (genitore), quando necessario |
-m modi |
permessi di accesso (SVR4). (Si vedranno i “modi” più avanti in questo Capitolo) |
Esempi:
% mkdir /home/frank/data
oppure se la directory di lavoro corrente è /home/frank, il seguente comando è equivalente:
% mkdir data
Per rimuovere una directory è necessario che questa sia vuota. Altrimenti bisogna prima rimuovere i file contenuti in essa. Inoltre, non si può rimuovere una directory se questa è la directory di lavoro corrente, bisogna prima uscire da quest'ultima.
Sintassi
rmdir directory
Esempi:
Per rimuovere la directory vuota /home/frank/data mentre si è in /home/frank usare:
% rmdir data
oppure
% rmdir /home/frank/data
Il comando per visualizzare le proprie directory e i propri file è ls(1). È possibile ottenere, attraverso le opzioni, informazioni circa la dimensione, il tipo, i permessi, la data di creazione, di modifica e di accesso del file.
Sintassi
ls [opzioni] [argomenti]
Opzioni generali
Quando non viene usato nessun argomento, viene mostrato il contenuto della directory corrente. Ci sono molte utili opzioni per il comando ls(1). Segue una lista di alcune di queste. Quando si usa il comando, le opzioni sono raggruppate insieme, precedute da un trattino (-).
-a |
mostra tutti i file, inclusi quelli che iniziano con un punto (.) |
-d |
mostra solo i nomi delle directory, non i file nella directory |
-F |
indica il tipo di elemento terminandolo con un simbolo: |
directory / | |
socket = | |
link simbolico @ | |
eseguibile * | |
-g |
mostra il gruppo Unix assegnato al file, richiede l'opzione -l (BSD solamente) o su una macchina SVR4, esempio Solaris, questa
opzione ha l'effetto opposto |
-L |
se il file è un link simbolico, mostra le informazioni del file o della directory a cui il link si riferisce, non le informazioni del link stesso |
-l |
listato lungo: mostra i modi, informazioni di link, il proprietario, la dimensione, la data dell'ultima modifica del file. Se il file è un link simbolico, una freccia (-->) precede il percorso del file collegato. |
Il campo modi viene fornito
dall'opzione -l
e consiste di 10 caratteri. Il primo
carattere è uno dei seguenti:
CARATTERE | SE L'ELEMENTO E' |
---|---|
d | directory |
- | file ordinario |
b | file speciale per dispositivi a blocchi |
c | file speciale per dispositivi a caratteri |
l | link simbolico |
s | socket |
I 9 caratteri successivi sono raggruppati in 3 blocchi di 3 caratteri ciascuno. Indicano i permessi di accesso al file: i primi 3 caratteri si riferiscono ai permessi del proprietario del file, i successivi 3 ai permessi degli utenti del gruppo Unix assegnato al file e gli ultimi 3 caratteri ai permessi degl'altri utenti sul sistema. Possono assumere i seguenti simboli:
Esistono altri permessi, specificamente progettati per essere usati in speciali situazioni. Questi sono spiegati nelle pagine man di ls(1).
Esempi:
Per mostrare i file in una directory
% ls demofiles frank linda
Per mostrare tutti i file in una directory, inclusi i file nascosti (iniziano con un punto):
% ls -a . .cshrc .history .plan .rhosts frank .. .emacs .login .profile demofiles linda
Per avere un listato lungo:
% ls -al total 24 drwxr-sr-x 5 workshop acs 512 Jun 7 11:12 . drwxr-xr-x 6 root sys 512 May 29 09:59 .. -rwxr-xr-x 1 workshop acs 532 May 20 15:31 .cshrc -rw------- 1 workshop acs 525 May 20 21:29 .emacs -rw------- 1 workshop acs 622 May 24 12:13 .history -rwxr-xr-x 1 workshop acs 238 May 14 09:44 .login -rw-r--r-- 1 workshop acs 273 May 22 23:53 .plan -rwxr-xr-x 1 workshop acs 413 May 14 09:36 .profile -rw------- 1 workshop acs 49 May 20 20:23 .rhosts drwx------ 3 workshop acs 512 May 24 11:18 demofiles drwx------ 2 workshop acs 512 May 21 10:48 frank drwx------ 3 workshop acs 512 May 24 10:59 linda
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 <[email protected]>.
Per domande su questa documentazione, invia una e-mail a <[email protected]>.