lpic/101/013_gestione_file.md
2024-11-09 21:11:14 +01:00

3.6 KiB

Gestione dei file

Tutto in Linux e' un file.

Un file consiste di contenuto e metadati (dimensione, proprietario, data di creazione, autorizzazioni, ecc). I file sono organizzati in directory, ossia un tipo particolare di file che memorizza altri file.

Esistono diversi tipi di file:

  • File regolari: memorizzano dati e programmi
  • Directory: contengono altri file
  • File speciali: utilizzati per 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 nel file system ha un inode associato, che contiene metadati importanti. 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: La dimensione totale 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
drwxrwxr-x  3 dado dado 61440  3 nov 10.39 Camera
-rw-r--r--  1 dado dado   623  3 nov 15.05 crontab.bk
drwxr-xr-x  2 dado dado  4096 21 gen  2024 Documents
drwxr-xr-x  2 dado dado  4096  1 nov 22.50 Download
drwxr-xr-x  8 dado dado 24576  3 nov 14.10 Downloads
drwxr-xr-x 12 dado dado  4096  1 nov 15.40 git
drwxr-xr-x  2 dado dado  4096 17 set 22.55 logs
drwxr-xr-x 15 dado dado  4096  1 nov 21.23 Nextcloud
drwxr-xr-x  2 dado dado  4096  1 nov 14.23 scripts

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

  • touch: crea un nuovo file vuoto
  • cp: copia un file. Usare l'opzione -i per richiedere la conferma
    • cp -r: consente di copiare una directory insieme a tutte le sue sottodirectory e file
  • mv: sposta o rinomina un file. Usare l'opzione -i per richiedere la conferma
  • rm: rimuove un file. Usare l'opzione -i per richiedere la conferma
    • rm -r: elimina una directory insieme a tutto il suo contenuto (incluse le sue sottodirectory)
  • mkdir: crea una directory. Con l'opzione -p e' possibile creare una directory insieme alle varie sottodirectory
  • rmdir: eliminazione di una directory non vuota. Per rimuovere una directory e le sue sottodirectory usare l'opzione -p

File globbing e Wildcards

Il file globbing e' una funzionalita' della shell che consente di rappresentare piu' nomi di file utilizzando caratteri speciali denominati wildcards.

Esistono tre caratteri jolly in Linux:

  • *: rappresenta zero, una o piu' occorrenze di qualsiasi carattere
  • ?: rappresenta una sola occorrenza di qualsiasi carattere
  • [] (caratteri tra parentesi quadre): rappresenta qualsiasi occorrenza di carattere/i racchiuso/i tra le parentesi quadre

Ad esempio:

ls l[aef]st.txt

# le parentesi [] possono includere anche intervalli, come [A-Z], [0-9]

Le wildcard (i caratteri jolly) possono essere combinate.