Files
learning/lpic/101/013-inode-file.md
2025-08-31 21:05:02 +02:00

3.8 KiB

Gestione dei file

In Linux, tutto è un file.

Un file è composto da contenuto e metadati, che includono dimensione, proprietario, data di creazione e autorizzazioni. I file sono organizzati in directory, che sono un tipo specifico di file progettato per contenere altri file.

Esistono diverse tipologie di file, ciascuna con funzioni distinte:

  • File regolari: utilizzati per memorizzare dati o programmi
  • Directory: contengono altri file e forniscono una struttura gerarchica per l'organizzazione dei dati
  • File speciali: impiegati per la gestione di input e output

Inode

Gli inode (o index nodes) sono una struttura dati utilizzata nei file system Unix e Unix-like per gestire le informazioni sui file e le directory. Ogni file o directory presente nel file system è associato a un inode, il quale contiene metadati essenziali per la gestione e l'accesso ai dati. Ecco alcune delle informazioni che un inode può contenere:

  1. Tipo di file: indica se l'oggetto è un file regolare, una directory, un link simbolico, ecc.
  2. Dimensione del file in byte
  3. Permessi di accesso: le autorizzazioni che determinano chi può leggere, scrivere o eseguire il file
  4. Proprietario e gruppo: informazioni su chi possiede il file e a quale gruppo appartiene
  5. Timestamp: diverse informazioni temporali, come la data di creazione, l'ultima modifica e l'ultimo accesso al file

Manipolazione dei file

ls

Nella forma base, ls elenca solo i nomi di file e directory. Utilizzando il parametro -l, mostra i permessi di file e directory, proprietario, dimensione, data di ultima modifica, ora e nome:

 > ls -l
totale 148
drwxr-xr-x  4 dado dado  4096  1 nov 20.07 Applications
drwxr-xr-x  2 dado dado  4096 13 dic  2023 bin
drwxr-xr-x  2 dado dado  4096 21 gen  2024 Documents
drwxr-xr-x 12 dado dado  4096  1 nov 15.40 git
drwxr-xr-x  2 dado dado  4096 17 set 22.55 logs

Il primo carattere nell'output indica il tipo di file:

  • -: indica un file regolare
  • d: una directory
  • c: un file speciale

Ricorsione

  • ls -R directory: elenca il contenuto di una directory e delle sue sottodirectory

Altri comandi per la gestione di file e directory

  • touch: crea un nuovo file vuoto. Se il file esiste già, aggiorna la data di accesso e modifica
  • cp: copia un file. Utilizzare l'opzione -i per richiedere conferma prima di sovrascrivere un file esistente
  • cp -r: consente di copiare una directory insieme a tutte le sue sottodirectory e file
  • mv: sposta o rinomina un file. Utilizzare l'opzione -i per richiedere conferma prima di sovrascrivere un file esistente
  • rm: rimuove un file. Utilizzare l'opzione -i per richiedere conferma prima di eliminare un file
  • rm -r: elimina una directory insieme a tutto il suo contenuto, incluse le sottodirectory
  • mkdir: crea una nuova directory. Con l'opzione -p, è possibile creare una directory insieme a tutte le sue sottodirectory
  • rmdir: rimuove una directory, ma solo se è vuota. Per rimuovere una directory e tutte le sue sottodirectory, utilizzare l'opzione -r

File globbing e wildcards

Il file globbing è una funzionalità della shell che consente di rappresentare più nomi di file utilizzando caratteri speciali noti come wildcards.

Esistono tre caratteri jolly in Linux:

  • *: rappresenta zero, una o più occorrenze di qualsiasi carattere. Ad esempio, *.txt corrisponde a tutti i file con estensione .txt.
  • ?: rappresenta una singola occorrenza di qualsiasi carattere. Ad esempio, file?.txt corrisponde a file1.txt, fileA.txt, ma non a file.txt.
  • [] (caratteri tra parentesi quadre): qualsiasi occorrenza di carattere/i racchiuso/i tra le parentesi quadre sarà considerata una corrispondenza. Ad esempio, l[ae]st.txt corrisponde a last.txt e lest.txt. Le parentesi quadre possono includere anche intervalli, come [A-Z], [0-9]