Állományok

Az aktuális (éppen használt) könyvtár állományait az ls paranccsal listázhatjuk:

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

Az ls parancs –első pillantásra nem különösebben hasznosnak látszó– paramétere lehet egy (esetleg több) állománynév:

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

Rögtön értelmet nyer azonban a fenti lehetőség, ha célszerű opciót is kap a a parancs (-l mint long, azaz hosszú forma):

tux@madas:~/public_html/txt/mp$ ls -l ksh_hnk_1913 
-rw-rw-r-- 1 tux tux 149995 okt   27 11:01 ksh_hnk_1913
tux@madas:~/public_html/txt/mp$ 

A részletes kiírás megmutatja többek között az állomány méretét, valamint a legutóbbi módosítás idejét.

Éppen úgy, mint a dos/windows esetén, az állománynév végén ponttal elválasztott kiterjesztés utalhat az állomány típusára, de ebben az esetben ez hiányzik. Ilyenkor tehet jó szolgálatot a file parancs, amely éppen ezt az információt adja meg. (Objektív okok miatt az eredmény helyességére nincs garancia, de a kapott információ általában részletesebb és valószínűleg még mindig megbízhatóbb, mint ha csupán a kiterjesztésre hagyatkoznánk.)

tux@madas:~/public_html/txt/mp$ file ksh_hnk_1913 
ksh_hnk_1913: UTF-8 Unicode text
tux@madas:~/public_html/txt/mp$ 

Néhány válogatott (és átrendezett) sor a file parancs kimenetéből:

foot:              HTML document, ASCII text
head:              XML 1.0 document text
szbw.html:         symbolic link to szbw.txt
szbw_chck.ods:     OpenDocument Spreadsheet
miu-1012.py:       ASCII text, with CRLF line terminators
miu-1026.py:       Python script, ASCII text executable
r01.py:            Python script, UTF-8 Unicode text executable
pp.sh:             Bourne-Again shell script, ASCII text executable
ppu00.txT:         empty
szbw.txt:          HTML document, ASCII text
ppu.txT:           HTML document, UTF-8 Unicode text
ppu20.txT:         UTF-8 Unicode text

A fentiek szépen szemléltetik, hogy a file parancs eredménye általában többet mond, mint a kiterejesztés: ugyanazon kiterjesztés többféle tartalmat takarhat (és ezekben az esetekben többnyire a látszólagos következetlenségekre sem nehéz magyarázatot találni).

Állományműveletek

Az alapvető műveletek (mint alighanem más rendszerekben is) a létrehozás, az átnevezés, a mozgatás, a másolás és a törlés.

Bár nem ez a (valódi) célja, állományt létrehozhatunk a touch parancs segítségével:

tux@madas:~/public_html/txt/mp$ touch eddig_nem_volt
tux@madas:~/public_html/txt/mp$ ls -l eddig_nem_volt
-rw-rw-r-- 1 tux tux 0 okt   31 17:21 eddig_nem_volt
tux@madas:~/public_html/txt/mp$ 

Átnevezésre is, (könyvtárak közötti) mozgatásra is használható az mv parancs:

tux@madas:~/public_html/txt/mp$ mv eddig_nem_volt eztán_sem_lesz
tux@madas:~/public_html/txt/mp$ ls -l eztán_sem_lesz 
-rw-rw-r-- 1 tux tux 0 okt   31 17:21 eztán_sem_lesz
tux@madas:~/public_html/txt/mp$ 

Másolásra a cp parancs szolgál:

tux@madas:~/public_html/txt/mp$ cp eztán_sem_lesz eddig_sem_volt
tux@madas:~/public_html/txt/mp$ ls -l eddig_sem_volt eztán_sem_lesz 
-rw-rw-r-- 1 tux tux 0 okt   31 17:26 eddig_sem_volt
-rw-rw-r-- 1 tux tux 0 okt   31 17:21 eztán_sem_lesz
tux@madas:~/public_html/txt/mp$ 

Végül az rm paranccsal törölhetünk állományokat:

tux@madas:~/public_html/txt/mp$ rm eddig_sem_volt eztán_sem_lesz 
tux@madas:~/public_html/txt/mp$ ls -l eddig_sem_volt eztán_sem_lesz 
ls: 'eddig_sem_volt' nem érhető el: Nincs ilyen fájl vagy könyvtár
ls: 'eztán_sem_lesz' nem érhető el: Nincs ilyen fájl vagy könyvtár
tux@madas:~/public_html/txt/mp$ 

Vegyük észre: a korábban beharangozottak szerint az ls (és hasonlóképpen az rm) parancs után is megadható több állománynév (illetve tudatosítsuk magunkban, hogy ezek szerepe más, mint amikor az mv, illetve a cp parancs után adunk meg két állománynevet).

Ha valakinek nem lenne ismerős: érdemes kipróbálni a parancssor manapság elterjedt kényelmi szolgáltatásait. A legfontosabbak közé tartozik, hogy a fölfelé/lefelé mutató nyíllal lépegethetünk a korábban kiadott parancsok között, illetve hogy egy állomány nevének első néhány karakterét leírva a Tab billentyűvel kérhetjük az állománynév kiegészítését.

E sorok írója a második lehetőséget használta az ls parancs után: ls -l ed<Tab>, illetve ls -l ez<Tab>; az első lehetőséget használta az ls parancs legutóbbi használata során (amikor a Tab billentyű már nem segített – miért is?)

És mire való (eredendően) a touch parancs?