( nice | 2011. 11. 02., sze - 10:05 )

+1

Azért beszédes, hogy a fájltörlésre szolgáló rendszerhívás neve nem mondjuk "delete", hanem unlink. Nem a fájlok (inode) törlődnek ugyanis, hanem csak a rájuk mutató bejegyzés a könyvtárból, illetve ezzel párhuzamosan az inode-ban eggyel csökken rá mutató linkek számát jelző érték. A fájl (inode) csak akkor törlődik, a 0-ra csökkent ez az érték (azaz egy könyvtárban sincs már rá mutató bejegyzés), de 0 érték esetén is csak akkor, ha az utolsó alkalmazás is bezárta már. Sőt, a különböző pipe-okon keresztül már "törölt" fájlokra mutató deszkriptorokat is átadhatnak egymásnak a programok, az ilyen fájloknak pedig nincs is nevük. Asszem pl. erről is írt Joshua.
Ahhoz, hogy egy fájlt törölhessünk, nem is kell hozzá semmilyen jog. Csak a szülőkönyvtárhoz "w".
Egy fájl, és a róla készített hard link között tehát nincs semmi különbség. Azt sem lehet megállapítani, melyik az eredeti. Egy fájl, egy inode. Egyébként érdekes, hogy Linux alatt minden fájltípusról lehet hard linket készíteni, kivéve a könyvtárakat. Még soft linkről is :-)