Appendice B — Struttura gerarchica dei file

I file in un sistema informatico sono organizzati secondo una struttura gerarchica ad albero, composta da directory (o cartelle) e file. Questo modello permette di organizzare, archiviare e recuperare le informazioni in modo logico ed efficiente.

Questa struttura, comune a tutti i sistemi operativi moderni, differisce principalmente nella notazione dei percorsi e nella gestione delle unità di memorizzazione.

B.1 Sistemi Unix-like (Linux e macOS)

Nei sistemi Unix-like, la gerarchia ha un’unica radice universale, rappresentata dal simbolo /. Tutti i file e le directory discendono da questo punto.

Esempio della struttura standard:

/
├── bin/              # Programmi di sistema essenziali
├── etc/              # File di configurazione del sistema
├── home/             # Directory personali degli utenti
│   └── utente/
│       ├── Documenti/
│       ├── Immagini/
│       └── Scaricati/
├── usr/              # Applicazioni e librerie utente
├── var/              # Dati variabili (log, cache, ecc.)
└── tmp/              # File temporanei

Notazione dei percorsi:
i percorsi assoluti iniziano sempre con / e utilizzano lo slash come separatore.
Esempio: /home/utente/Documenti/tesi.docx

B.2 Sistema Windows

Windows organizza i file in strutture gerarchiche separate, ciascuna radicata in una lettera di unità (es. C:, D:). La radice di ogni albero corrisponde quindi a un’unità disco specifica.

Esempio della struttura tipica:

C:\
├── Program Files\    # Applicazioni installate
├── Windows\          # File di sistema
├── Users\            # Profili degli utenti
│   └── utente\
│       ├── Documents\
│       ├── Pictures\
│       └── Downloads\
└── Temp\             # File temporanei

Notazione dei percorsi:
i percorsi assoluti iniziano con una lettera di unità seguita da due punti e un backslash (C:\), utilizzando il backslash come separatore.
Esempio: C:\Users\utente\Documents\tesi.docx

B.3 Comandi condamentali per la gestione

La seguente tabella presenta i comandi di base per navigare e gestire la struttura dei file nei due ambienti.

B.3.1 Terminale Unix/Linux/macOS (shell Zsh/Bash)

Comando Descrizione Esempio di Utilizzo
pwd Mostra il percorso della directory corrente (Print Working Directory) pwd/home/utente/Documenti
cd Cambia directory (Change Directory) cd /home/utente/Scaricati
ls Elenca il contenuto di una directory (List) ls -l
mkdir Crea una nuova directory (Make Directory) mkdir progetto_2024
mv Sposta o rinomina file/directory (Move) mv documento.txt backup/
cp Copia file o directory (Copy) cp -r cartella/ backup/
rm Rimuove file (Remove) rm file_obsoleto.txt
rmdir Rimuove una directory vuota (Remove Directory) rmdir cartella_vuota
whoami Mostra il nome dell’utente corrente whoamiutente

Esempio di sessione:

pwd
cd ~/Documenti
mkdir report
cd report
touch analisi.txt
ls
cp analisi.txt ../backup/
rm analisi.txt
cd ..
whoami

B.3.2 Prompt dei comandi Windows (CMD)

Comando Descrizione Esempio di Utilizzo
cd (senza argomenti) Mostra il percorso corrente cdC:\Users\utente\Documenti
cd Cambia directory cd C:\Users\utente\Downloads
dir Elenca il contenuto di una directory dir
mkdir Crea una nuova directory mkdir Dati
move Sposta o rinomina file/directory move rapporto.docx Archivio\
copy Copia file copy originale.txt copia.txt
del Elimina file (Delete) del temp.txt
rmdir Rimuove una directory vuota (Remove Directory) rmdir VecchiaCartella
whoami Mostra il nome dell’utente corrente whoamidominio\utente

Esempio di sessione:

cd C:\Users\utente\Documenti
mkdir progetto
cd progetto
echo Test > note.txt
dir
move note.txt ..\Archivio\
cd ..\Archivio
copy note.txt backup_note.txt
del note.txt
whoami

B.4 Considerazioni finali

La logica sottostante alla gestione gerarchica dei file è sostanzialmente identica tra i sistemi operativi: ciò che cambia sono principalmente la sintassi dei comandi e le convenzioni nella notazione dei percorsi (slash / in Unix, backslash \ in Windows). La padronanza di questi comandi di base costituisce un prerequisito fondamentale per operare efficacemente in ambienti tecnici, specialmente nell’ambito della data science e dell’analisi computazionale.