gestione di file
This commit is contained in:
parent
7e48ced7ee
commit
f57822c153
@ -1,4 +1,4 @@
|
||||
## Reindirizzamenti e pipe
|
||||
# Reindirizzamenti e pipe
|
||||
|
||||
Tutti i programmi di manipolazione del testo partono da un input standard (`stdin`), lo inviano a un output standard (`stdout`) e inviano eventuali errori a un output degli errori standard (`stderr`). Solitamente, `stdin` e' quello digitato da tastiera.
|
||||
|
||||
|
@ -0,0 +1,84 @@
|
||||
# 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*:
|
||||
|
||||
```bash
|
||||
> 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:
|
||||
|
||||
```bash
|
||||
ls l[aef]st.txt
|
||||
|
||||
# le parentesi [] possono includere anche intervalli, come [A-Z], [0-9]
|
||||
```
|
||||
|
||||
Le wildcard (i caratteri jolly) possono essere combinate.
|
Loading…
x
Reference in New Issue
Block a user