ln - 建立連結指令
本篇介紹如何使用 Linux 的 ln 指令建立各種連結檔案。
ln 是在 Linux 及其他 Unix Like 作業系統建立連結的指令,概念跟 Windows 的捷徑差不多。ln 建立的連結分為 "硬連結" (hard link) 及 "軟連結" (symbolic link), 預設 ln 會使用 hard link。
建立了硬連結之後,可以查看一下 inode:
查看一下 inode:
至於硬連結檔是直接使用相同的 inode,所以不管是用相對路徑或絕對路徑,效果都相同。
建立硬連結
所謂的硬連結就是使用相同 inode 的連結檔案,ln 指令預設就是建立硬連結:# 建立硬連結
ln test.txt test_hardlink.txt
這樣就會建立一個 test_hardlink.txt 硬連結檔,指向 test.txt 這個檔案。建立了硬連結之後,可以查看一下 inode:
# 查看 inode
ls -i test.txt test_hardlink.txt
787682 test_hardlink.txt 787682 test.txt
硬連結會跟原來的檔案有相同的 inode。
軟連結(符號連結)則是靠著絕對路徑或相對路徑來指向目標檔案的連結檔,若要使用 ln 指令建立軟連結,可以加上 -s 參數:
建立軟連結
# 建立軟連結
ln -s test.txt test_softlink.txt
這樣就會建立一個 test_softlink.txt 軟連結檔,指向 test.txt 這個檔案。查看一下 inode:
# 查看 inode
ls -i test.txt test_softlink.txt
792852 test_softlink.txt 787682 test.txt軟連結的 inode 就會跟原始的檔案不相同。
路徑
在建立連結檔案時,亦可使用相對路徑或是絕對路徑,例如:# 使用相對路徑
ln -s ../source/test.txt test.txt
# 使用絕對路徑
ln -s /home/gtwang/source/test.txt test.txt
由於軟連結是直接靠著路徑來指向目標檔案的,所以對於軟連結來說,使用相對路徑與絕對路徑所建立的連結檔案效果會有不同,在搬移軟連結檔案時,以絕對路徑所建立的連結檔還是會指向相同的位置,而以相對路徑所建立的連結檔,其指向的位置就會跟著連結檔的位置而有變動。
留言
張貼留言