Quando si naviga nel file system di Linux si incontrano sicuramente diversi tipi di file. I tipi di file più usati e ovvi sono i normali file e le directory. Tuttavia, il sistema operativo Linux ha molto di più da offrire in termini di tipi di file, dato che include anche altri 5 tipi di file. Questo breve articolo vi aiuterà a riconoscere tutti i 7 diversi tipi di file all’interno del sistema operativo Linux.
Identificare i tipi di file Linux
C’è solo 1 comando che dovete conoscere, che vi aiuterà a identificare e categorizzare tutti i sette diversi tipi di file che si trovano sul sistema Linux.
$ ls -ld <nome del file>
Ecco un esempio di output del comando precedente.
$ ls -ld /etc/services
-rw-r--r-- 1 root 19281 Feb 14 2012 /etc/services
Il comando ls mostrerà il tipo di file come un simbolo codificato trovato come primo carattere della parte del permesso del file. In questo caso è “-“, che significa “file regolare”. È importante sottolineare che i tipi di file di Linux non devono essere confusi con le estensioni dei file. Diamo un’occhiata ad un breve riassunto di tutti i sette diversi tipi di tipi di file Linux e degli identificatori del comando ls:
- – : file regolare
- d : directory
- c : file dispositivo a caratteri
- b : block device file
- s : local socket file
- p : named pipe
- l : symbolic link
L’Istituto Geofisico UAF, sta cercando un analista di sistemi Linux con esperienza per unirsi al loro team di analisti e ingegneri di infrastrutture informatiche di ricerca. LOCATION: Fairbanks, Alaska, USA
APPLY NOW
File regolare
Il file regolare è un tipo di file più comune trovato sul sistema Linux. Governa tutti i diversi file come file di testo, immagini, file binari, librerie condivise, ecc. Puoi creare un file regolare con il comando touch:
$ touch linuxcareer.com
$ ls -ld linuxcareer.com
-rw-rw-r-- 1 lubos lubos 0 Jan 10 12:52 linuxcareer.com
Il primo carattere del comando ls, in questo caso “-“, indica il codice di identificazione del file regolare. Per rimuovere un file regolare puoi usare il comando rm:
$ rm linuxcareer.com
$
Directory
Directory è il secondo tipo di file più comune in Linux. La directory può essere creata con il comando mkdir:
$ mkdir FileTypes
$ ls -ld FileTypes/
drwxrwxr-x 2 lubos lubos 4096 Jan 10 13:14 FileTypes/
Come spiegato prima, la directory può essere identificata dal simbolo “d” nell’output del comando ls. Per rimuovere una directory vuota usa il comando rmdir.
$ rmdir FileTypes
Quando cerchi di rimuovere una directory con il comando rmdir, che contiene file aggiuntivi, otterrai un messaggio di errore:
rmdir: failed to remove `FileTypes/': Directory not empty
In questo caso devi usare un comando:
$ rm -r FileTypes/
Character device
I file device a caratteri e a blocchi permettono agli utenti e ai programmi di comunicare con le periferiche hardware. Per esempio:
$ ls -ld /dev/vmmon
crw------- 1 root root 10, 165 Jan 4 10:13 /dev/vmmon
In questo caso il dispositivo di carattere è il dispositivo del modulo vmware.
Block Device
I dispositivi di blocco sono simili ai dispositivi di carattere. Per lo più governano l’hardware come dischi rigidi, memoria, ecc.
$ ls -ld /dev/sda
brw-rw---- 1 root disk 8, 0 Jan 4 10:12 /dev/sda
Local domain sockets
I local domain sockets sono usati per la comunicazione tra processi. Generalmente, sono usati da servizi come X windows, syslog e così via.
$ ls -ld /dev/log
srw-rw-rw- 1 root root 0 Jan 4 10:13 /dev/log
I socket possono essere creati dalla chiamata di sistema socket e rimossi dai comandi unlink o rm.
Named Pipes
Similmente ai Local sockets, i named pipes permettono la comunicazione tra due processi locali. Possono essere create dal comando mknod e rimosse con il comando rm.
Collegamenti simbolici
Con i collegamenti simbolici un amministratore può assegnare a un file o a una directory identità multiple. Il collegamento simbolico può essere considerato come un puntatore a un file originale. Ci sono due tipi di link simbolici:
- hard link
- soft link
La differenza tra hard e soft link è che i soft link usano il nome del file come riferimento e gli hard link usano un riferimento diretto al file originale. Inoltre, gli hard link non possono attraversare file system e partizioni. Per creare un collegamento simbolico soft possiamo usare il comando ln -s:
$ echo file1 > file1
$ ln -s file1 file2
$ cat file2
file1
$ ls -ld file2
lrwxrwxrwx 1 lubos lubos 5 Jan 10 14:42 file2 -> file1
Per rimuovere il collegamento simbolico possiamo usare il comando unlink o rm.
Conclusione
Come amministratore di sistema lavorerai principalmente con file regolari, blocchi di directory e dispositivi a carattere. Come sviluppatore di software lavorerai anche con socket locali e named pipe.
Come amministratore di sistema lavorerai principalmente con file regolari, directory, blocchi e caratteri.