„Kolik typů souborů existuje v Linuxu/Unixu a jaké?“ To je častá otázka každého člověka, který se začíná učit Linux. O.K., proč je tak důležité znát typy souborů?“
Odpověď: Je to proto, že Linux považuje každou věc za soubor. Když někdy začnete pracovat na krabici s Linuxem/Unixem, musíte se vypořádat s různými typy souborů (Linux/Unix), abyste je mohli efektivně spravovat
Kolik typů souborů existuje v Linuxu/Unixu?
Ve výchozím nastavení má Unix pouze 3 typy souborů. Jsou to:
Obvyklé soubory
-
Soubory adresáře
-
Speciální soubory (tato kategorie má v sobě 5 podtypů)
V praxi tedy máme v Linuxu/Unixu celkem 7 typů (1+1+5) souborů. A v systému Solaris máme 8 typů. A označení typu souboru můžete vidět v levé části příkazu „ls -l“.
Tady jsou tyto typy souborů.
-
Regulární soubor(-.)
-
Soubory adresáře(d)
Speciální soubory
- Blokový soubor(b)
- Soubor znakového zařízení(c)
- Pojmenovaný soubor roury nebo jen roura. soubor(p)
- Symbolický odkaz soubor(l)
- Socket soubor(s)
Pro vaši informaci existuje ještě jeden typ souboru s názvem door file(D), který je přítomen v systému Sun Solaris, jak již bylo zmíněno. Door je speciální soubor pro meziprocesovou komunikaci mezi klientem a serverem (celkem tedy 8 typů v unixových strojích). O různých typech souborů se dozvíme v níže uvedeném pořadí pro každý typ souboru.
Definice a informace o typu souboru
Jak vytvořit konkrétní typ souboru
Jak vypsat/zobrazit konkrétní typ souboru
Pravidelný typ souboru vysvětlený v Linuxu
Jsou to soubory, které jsou ve výstupu příkazu ls -l na začátku řádku označeny znakem „-„. A tyto soubory jsou:
1. Čitelný soubor nebo
2. Binární soubor nebo
3. Obrazové soubory nebo
4. Komprimované soubory atd.
Jak vytvořit běžné soubory v systému Linux/Unix?
Ans: Pomocí příkazu touch/vi a operátorů přesměrování atd.
Jak můžeme vypsat regulární soubory?
ls -l | grep ^-
Ukázka výpisu regulárních souborů :
-rw-r--r-- 1 krishna krishna 20986522 2010-01-31 13:48 test.wmv
-rw-r--r-- 1 krishna krishna 173448 2010-01-30 21:20 Transformers-Teaser-Wallpaper-310. Ukázka výpisu regulárních souborů.jpg
-r-xr-xr-x 1 root root 135168 2009-12-12 19:14 VIDEO_TS.VOB
-rw-r--r-- 1 krishna krishna 2113536 2009-12-01 13:32 Aditya 365 - Janavule.mp3
-rwxrwxrwx 1 root root 168 2010-02-14 14:12 xyz.sh
Vysvětlení typu souboru adresáře v Linuxu/Unixu
Tento typ souborů obsahuje běžné soubory/složky/speciální soubory uložené na fyzickém zařízení. A tento typ souborů bude mít modrou barvu s odkazem větším nebo rovným 2.
Jak je můžeme vypsat v mém současném pracovním adresáři?
ls -l | grep ^d
Příklad výpisu adresářů.
drwxr-xr-x 2 surendra surendra 4096 2010-01-19 18:37 bin
drwxr-xr-x 5 surendra surendra 4096 2010-02-15 18:46 Plocha
drwxr-xr-x 2 surendra surendra 4096 2010-01-18 14:36 Dokumenty
drwxr-xr-x 2 surendra surendra 4096 2010-02-13 17:45 Downloads
Jak je vytvořit?
Ans : Použijte příkaz mkdir
Typ souboru blok v Linuxu
Tyto soubory jsou hardwarové soubory většina z nich se nachází v /dev.
Jak je vytvořit?
Ans : Použijte příkaz fdisk nebo vytvořte virtuální oddíl.
Jak je můžeme vypsat v mém současném pracovním adresáři?
ls -l | grep ^b
Příklad výpisu blokových souborů (abyste tyto soubory viděli, jsou umístěny v /dev).
brw-rw---- 1 kořenový disk 8, 1 2010-02-15 09:35 sda1
brw-rw---- 1 kořenový disk 8, 2 2010-02-15 09:35 sda2
brw-rw---- 1 kořenový disk 8, 5 2010-02-15 09:35 sda5
Soubory znakových zařízení v Linuxu
Zajišťuje sériový tok vstupu nebo výstupu.Vaše terminály jsou klasickým příkladem pro tento typ souborů.
Jak lze vypsat znakové soubory v mém současném pracovním adresáři?
ls -l | grep ^c
Příklad výpisu znakových souborů(umístěných v /dev)
crw-rw-rw- 1 root tty 5, 0 2010-02-15 16:52 tty
crw--w---- 1 root root 4, 0 2010-02-15 09. 10. 2010:35 tty0
crw------- 1 root root 4, 1 2010-02-15 09:35 tty1
Pipe soubory v Linuxu/Unixu
Druhý název roury je „pojmenovaná“ roura, která se někdy nazývá FIFO. Zkratka FIFO znamená „First In, First Out“ (první dovnitř, první ven) a odkazuje na vlastnost, že pořadí vstupujících bajtů je stejné jako vystupujících. „Jméno“ pojmenované roury je ve skutečnosti jméno souboru v rámci souborového systému.
Jak je vytvořit?
Ans: Použijte příkaz mkfifo.
Jak lze vypsat znakové soubory v mém současném pracovním adresáři?
ls -l | grep ^p
Příklad výpisu souborů rour
prw-r----- 1 root root 0 2010-02-15 09:35 /dev/.initramfs/usplash_outfifo
prw-r----- 1 root root 0 2010-02-15 09:35 /dev/.initramfs/usplash_fifo
prw------- 1 syslog syslog 0 2010-02-15 15:38 /var/run/rsyslog/kmsg
symbolické propojovací soubory v Linuxu
Jsou to propojovací soubory na jiné soubory. Jsou to buď adresáře/řádové soubory. Číslo inodu pro tento soubor a jeho nadřazené soubory je stejné. V Linuxu/Unixu jsou k dispozici dva typy odkazových souborů, tj. měkký a tvrdý odkaz.
Jak je vytvořit?
Ans : použijte příkaz ln
Jak můžeme vypsat propojené soubory v mém současném pracovním adresáři?
ls -l | grep ^l
Příklad výpisu propojených souborů
lrwxrwxrwx 1 root root 24 2010-02-15 09:35 sndstat -> /proc/asound/oss/sndstat
lrwxrwxrwx 1 root root 15 2010-02-15 09:35 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 2010-02-15 09:35 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 2010-02-15 09:35 stdout -> /proc/self/fd/1
Socket soubory v Linuxu
Socket soubor slouží k předávání informací mezi aplikacemi za účelem komunikace
Jak je vytvořit?
Ans : Soubor socket můžete vytvořit pomocí systémového volání socket(), které je k dispozici pod
Příklad v programování v jazyce C
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
Na tento soubor socket se můžete odkazovat pomocí sockfd. Ten je stejný jako deskriptor souboru a pro čtení a zápis ze socketu můžete použít systémová volání read(), write().
Jak můžeme vypsat soubory socketu v mém současném pracovním adresáři?
ls -l | grep ^s
Příklad výpisu souborů socketu.
srw-rw-rw- 1 root root 0 2010-02-15 09:35 /dev/log
srwxrwxrwx 1 root root 0 2010-02-15 10:07 /var/run/cups/cups.sock
srwxrwxrwx 1 root root 0 2010-02-15 09:35 /var/run/samba/winbindd_privileged/pipe
srwxrwxrwx 1 mysql mysql 0 2010-02-15 09:35 /var/run/mysqld/mysqld.sock
Tip pro vás. Jak najít požadovaný typ souboru ?
Ans : Použijte příkaz find s parametrem -type. Například pokud chcete najít soubor socket, stačí použít níže uvedený příkaz. find / -type s Pokud chcete najít propojený soubor, jak? Find / -type l
To je….
.