- IT Blog – Linux & Windows - https://it.naxoblog.hu -

Fájlok: alapok, hosszúság, karakterek, ajánlás

Tágabb értelembe véve minden fájl, könyvtár, hivatkozás (soft- és hardlink) , eszköz (device) és csővezeték (pipe) fájlként értelmezhető, kezelhető a GNU/Linux rendszereken. Bár e megállapítás a kezdő felhasználónak zavaró lehet, mégis hasznos lehetőség. Mindenek előtt vegyük át, milyen megkötések vonatkoznak a fájlnevekre.

Fájlnévre vonatkozó megkötések, ajánlások

Az első és legfontosabb ismérv, hogy a GNU/Linux a POSIX szabványnak megfelel, ami azt írja elő, hogy minimálisan 14 karakter hosszúnak kell lennie a maximális fájlnév hossznak. Maximális névhossz nincs megszabva, de a GNU/Linux maximálisan 255 karakter hosszú fájlnevekkel tud dolgozni és megkülönbözteti a kis- és nagybetűket egymástól (azaz a /tmp/proba és /tmp/Proba nem ugyanaz a fájl).

Rejtett fájlt vagy könyvtárat úgy hozhatunk létre, hogy egy „.” (pont) karakterrel kezdjük a nevét. Ezáltal a következő példában szereplő három fájl egyszerre lehet jelen egy könyvtárban, a második eközben rejtett fájl is:

proba
.proba
Proba

A fájlnévben szereplő karakterekre vonatkozó korlátozás nincs, minden karakter szerepelhet — akár még a ’*’ (csillag) és ’?’ (kérdőjel) karakterek is, de lehetőleg kerüljük a használatukat —, bár ajánlás annál több van.

Lehetőleg kerüljük a szóközök használatát. Igaz, grafikus felületen nem okozhat gondot, de karakteres felületen saját magunknak okozunk plusz munkát. Ugyanis, ha egy parancsnak át akarunk adni egy szóközöket tartalmazó fájlnevet, akkor vagy idézőjelek közé kell tenni, vagy egy ’’ (backslash) jellel meg kell védeni mindegyik szóközt egyesével (igaz, a héj segíti a felhasználót sok mindenben, de erről majd későbbi, BASH-ről szóló bejegyzésben).

Szintén erősen ajánlják, hogy lehetőleg kerüljék a felhasználók a ’–’-lel (kötőjel) kezdődő fájlnevek használatát, mert egy program paramétereként írva, belső kapcsolónak értelmezheti.

Létezzen például a ‘/tmp/-példafájl‘ állományunk, amit próbáljuk meg letörölni:

bash$ cd /tmp
bash$ rm -példafájl
rm: invalid option -- a
Try `rm --help' for more information.
bash$

Látható, hogy paraméterként próbálta értelmezni az rm parancs. Abszolút útvonal használatával már sikert érhetünk el (így nem kötőjellel kezdődik, ezért nem próbálja kapcsolóként értelmezni az rm):

bash$ rm /tmp/-példafájl
bash$

De a legbiztosabb módszer, ha követjük a GNU szabványt, amely szerint a paraméterek végét a dupla kötőjellel (––) adhatjuk meg:

bash$ cd /tmp
bash$ rm -- -példafájl
bash$

Egy UTF8-as világban már nem szabadna problémát okoznia az ékezetes fájlneveknek, de manapság is még sok helyen nem tértek át erre a karakterkódolásra. Ennek fényében ajánlatos lehet az ékezetes betűk használatának mellőzése és csak az angol ábécé betűi, számok és egyéb írásjelek használata a fájlnevekben, hogy adathordozás esetén ne keletkezzen előre nem látható hiba a különböző nyelvi területeket támogató operációs rendszerek között. Otthoni felhasználók számára egyre kisebb jelentőséggel bír, főleg, ahogy jelennek meg az egyre újabb operációs rendszerek, de érdemes lehet odafigyelni rá.