Könyvtárak

A könyvtárrendszer koncepcióját aligha kell bemutatni az olvasónak: a unixos rendszerek mintájára jelent meg ez a dos/windows-vonalon is (a legelső dos-változatokat követően).

Bár az eltelt fél évszázad nem hagyta érintetlenül, egy unix/linux-rendszer könyvtárszerkezete a mai napig ugyanazon elvek szerint épül föl.

Részlet(ek) a szerző gépéről:

/
├──bin
├──boot
├──cdrom
├──dev
├──etc
├──home
│  ├──lost+found 
│  └──tux
│     └──public_html
│        └──txt
│           ├──mp
│           └──pp
├──lost+found
├──media
├──mnt
├──opt
├──proc
├──root
├──run
├──sbin
├──snap
├──srv
├──sys
├──tmp
├──usr
└──var

Ahogyan az ábrán is látható, a gyökérkönyvtár jele / (perjel); ahogyan az ábrán nem látható, a felhasználó saját könyvtárának jele ~ (hullámvonal) – (gondolatjel, de ez csak gyenge vicc volt) ez jelenik viszont meg a promptbeli : (kettőspont) után, innen indul ki az aktuális könyvtárat megadó útvonal:

tux@madas:~/public_html/txt/mp$ 

Ha a prompt nem mutatná (vagy valamilyen okból kifolyólag nem használhatnánk a promptbeli információt), akkor a pwd parancs segítségével állapíthatjuk meg, melyik könyvtár az aktuális:

tux@madas:~/public_html/txt/mp$ pwd
/home/tux/public_html/txt/mp
tux@madas:~/public_html/txt/mp$ 

Ahogyan a dos/windows esetén is megszoktuk, az útvonalmegadásban a könyvtárak között határoló jelként jelenik meg a /.

Ugyancsak ismerős lehet a szülőkönyvtár jeleként használt .. (két pont): a cd parancs után ennek segítségével léphetünk egy szinttel följebb:

tux@madas:~/public_html/txt/mp$ cd ..
tux@madas:~/public_html/txt$ 

A relatív útvonal mindig az éppen aktuális könyvárhoz viszonyít:

tux@madas:~/public_html/txt$ cd pp
tux@madas:~/public_html/txt/pp$ 

Abszolút útvonalmegadás esetén (is) jelentősen felgyorsíthatja a munkát a Tab billentyű használata:

tux@madas:~/public_html/txt/pp$ cd /home/tux/public_html/txt/mp/
tux@madas:~/public_html/txt/mp$

Könyvtárműveletek

A könyvtárszerkezet alakítására való az mkdir, illetve az rmdir parancs. Az előzővel könyvtárakat hozhatunk létre, az utóbbiaval törölhetjük azokat. Értelemszerűen mindkettő után használható relatív, illetve abszolút útvonal:

tux@madas:~/public_html/txt/mp$ mkdir ez_nem_kell
tux@madas:~/public_html/txt/mp$ mkdir /home/tux/public_html/txt/mp/ez_sem_kell
tux@madas:~/public_html/txt/mp$ rmdir /home/tux/public_html/txt/mp/ez_nem_kell/ ez_sem_kell/
tux@madas:~/public_html/txt/mp$ 

(Az útvonalak utolsó helyén szereplő könyvtár neve után nem kell kitenni a /-et, az az állománynév-kiegészítéshez használt Tab billentyű hatására jelent meg.)

Az előző bekezdésben nem véletlenül szerepel az állománynév kifejezés. A unix-alapú rendszerekben ez a fogalom sokkal általánosabb, mint megszokhattuk: nem csupán a könyvtárakat, hanem például a hardvereszközöket is (speciális) állományként kezelhetjük (illetve kell kezelnünk).

Ha az ls parancsot a -a (-a, mint all) opcióval adjuk ki, akkor a korábbiakhoz képest három újszerű állományt is láthatunk:

tux@madas:~/public_html/txt/mp$ ls -a
.              itv_html.txt      pp162.txT  ppp11.txT  ppp45.txT  ppr08.txT  ppr64.txT    ppu.txt    ppv.txt    r_szj.py.20171103
..             ksh_hnk_1913      pp170.txT  ppp12.txT  ppp46.txT  ppr10.txT  ppr70.txT    ppu.txT    ppv.txT    szbw_chck.ods
1b1bff.html    ksh_hnk_1913.txt  pp171.txT  ppp13.txT  ppp47.txT  ppr12.txT  ppr.txt      ppv00.txT  ppw00.txT  szbw.html
1b1bff.txt     ksh_hnk_1913.txT  pp172.txT  ppp14.txT  ppp48.txT  ppr14.txT  ppr.txT      ppv02.txT  ppw02.txT  szbw.txt
1.html         miu-1012.py       pp181.txT  ppp15.txT  ppp49.txT  ppr16.txT  pp.sh        ppv04.txT  ppw04.txT  temp
20010224.txt   miu-1019a.py      ppbg.txT   ppp20.txT  ppp50.txT  ppr18.txT  ppt.txT      ppv06.txT  ppw06.txT  v02.py
2.html         miu-1019bb.py     ppbq.txT   ppp21.txT  ppp51.txT  ppr50.txT  pp.txT       ppv08.txT  ppw08.txT  v04.py
4.html         miu-1019b.py      ppd.txT    ppp25.txT  ppp98.txT  ppr51.txT  ppu00.txT    ppv10.txT  ppw10.txT  v06.py
5.html         miu-1026.py       pp.html    ppp26.txT  ppp99.txT  ppr52.txT  ppu10.txT    ppv20.txT  ppw20.txT  vmg_2017_prob.py
6.html         pfppt.txT         pph.txT    ppp27.txT  ppp.txt    ppr53.txT  ppu12.txT    ppv22.txT  ppw22.txT
foot           pp150.txT         ppm.txt    ppp30.txT  ppp.txT    ppr54.txT  ppu14.txT    ppv24.txT  ppw.txt
head           pp151.txT         ppm.txT    ppp31.txT  ppr00.txT  ppr60.txT  ppu20.txT    ppv26.txT  ppw.txT
itiiee.txt     pp152.txT         ppp01.txT  ppp32.txT  ppr02.txT  ppr61.txT  .#ppu22.txT  ppv28.txT  r01.py
itiitr.txt     pp160.txT         ppp02.txT  ppp40.txT  ppr04.txT  ppr62.txT  ppu22.txT    ppv30.txT  r02.py
itv_html.html  pp161.txT         ppp10.txT  ppp41.txT  ppr06.txT  ppr63.txT  ppu24.txT    ppv32.txT  r_szj.py

Ha egy állomány neve ponttal kezdődik, akkor azt a rendszer rejtett állományként kezeli. Ezen belül kettőnek különleges szerepe van:

tux@madas:~/public_html/txt/mp$ file . ..
.:  directory
..: directory
tux@madas:~/public_html/txt/mp$ 

Ahogyan a cd parancs kapcsán említettük, a .. a szülőkönyvtár jele; a . az aktuális könyvtáré.

Megerősíti a mondottakat az ls -al parancs kimenete (összevontuk a –rövid– -a és -l opciókat):

tux@madas:~/public_html/txt/mp$ ls -al
összesen 1408
drwxr-x--- 2 tux www-data   4096 okt   31 19:14 .
drwxr-x--- 8 tux www-data   4096 szept 24  2017 ..
lrwxrwxrwx 1 tux www-data     10 szept 23  2012 1b1bff.html -> 1b1bff.txt
-rw-r----- 1 tux www-data   1155 febr  10  2015 1b1bff.txt
-rw-r----- 1 tux www-data  44990 szept 12  2015 1.html
-rw-r----- 1 tux www-data   2326 febr   8  2015 20010224.txt
-rw-r----- 1 tux www-data  46805 szept 12  2015 2.html
-rw-r----- 1 tux www-data   8540 szept 12  2015 4.html
…
tux@madas:~/public_html/txt/mp$