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 programmiDirectory: contengono altri file e forniscono una struttura gerarchica per l'organizzazione dei datiFile 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:
- Tipo di file: indica se l'oggetto è un file regolare, una directory, un link simbolico, ecc.
- Dimensione del file in byte
- Permessi di accesso: le autorizzazioni che determinano chi può leggere, scrivere o eseguire il file
- Proprietario e gruppo: informazioni su chi possiede il file e a quale gruppo appartiene
- 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 regolared: una directoryc: 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 modificacp: copia un file. Utilizzare l'opzione-iper richiedere conferma prima di sovrascrivere un file esistentecp -r: consente di copiare una directory insieme a tutte le sue sottodirectory e filemv: sposta o rinomina un file. Utilizzare l'opzione-iper richiedere conferma prima di sovrascrivere un file esistenterm: rimuove un file. Utilizzare l'opzione-iper richiedere conferma prima di eliminare un filerm -r: elimina una directory insieme a tutto il suo contenuto, incluse le sottodirectorymkdir: crea una nuova directory. Con l'opzione-p, è possibile creare una directory insieme a tutte le sue sottodirectoryrmdir: 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,*.txtcorrisponde a tutti i file con estensione .txt.?: rappresenta una singola occorrenza di qualsiasi carattere. Ad esempio,file?.txtcorrisponde 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.txtcorrisponde a last.txt e lest.txt. Le parentesi quadre possono includere anche intervalli, come[A-Z],[0-9]