符號鏈接是指向一個文件的間接指針。他與上一節所訴的硬鏈接不同。硬鏈接直接指向文件的i節點。引入符號鏈接的原因是為了避開硬鏈接的一些限制。
從圖中,我們可以看到foo到testdir是一個循環。這樣的一個循環很容易消除。因為unlink並不跟隨符號鏈接,所以可以unlink文件foo/testdir,但是如果創建一個構成這種循環的硬鏈接,那麼就很難消除它。這就是為什麼link函數burn徐構造指向目錄的硬鏈接的原因。
用open函數打開文件的時候如果傳遞給open函數的路徑名制定了一個符號鏈接,那麼open跟隨此鏈接達到你所指定的文件。若此符號鏈接所指向的文件並不存在。則open返回出錯。表示不能打開該文件。這可能會使不熟悉符號練級的用戶感到迷惑。如下例子
linux系統會提示這兩個文件,myfile文件存在但cat後卻稱沒有這一個文件。其原因是某與file
是一個符號鏈接。但該鏈接所指向的文件不存在。ls命令-l選型給我們提示。->前為符號鏈接。之後為文件。也可以是使用-F選項。