文章作者:Tyan
博客:noahsnail.com | CSDN | 簡書
鏈接文件是Linux文件系統的一個優勢,它可以保存一份物理文件副本和多個虛擬副本。這種虛擬的副本稱為鏈接。鏈接是目錄中指向文件真實位置的占位符。Linux系統中有兩種鏈接:符號鏈接和硬鏈接。
1. ln -s
符號鏈接是實實在在的文件,它指向虛擬目錄結構中某個地方的另一個文件。兩個文件通過符號鏈接在一起,內容并不相同。要為一個文件創建一個符號鏈接,原始文件必須存在。ln -s
命令用來創建符號鏈接。
# 命令形式:ls -s source_file_name link_filename
# 創建符號鏈接
$ ln -s test b
# b為鏈接文件,test為源文件,`->`符號表明該文件是一個鏈接文件,文件b的大小與test不一樣。
$ ls -l
total 8
-rw-r--r-- 1 *** staff 0 11 13 13:52 a
lrwxr-xr-x 1 *** staff 4 11 13 15:11 b -> test
-rw-r--r-- 1 *** staff 0 11 13 13:13 test
2. ln
硬連接會創建獨立的虛擬文件,其中包含了原始文件的位置和信息,但它們從根本上是一個文件,引用硬連接文件就等同于引用了源文件。創建硬連接時源文件也必須存在,不過ln命令不需要加上-s
參數。
# 命令形式:ls source_file_name link_filename
# 創建硬連接
$ ln test c
# c為硬鏈接文件
$ ls -l
total 8
-rw-r--r-- 1 *** staff 0 11 13 13:52 a
lrwxr-xr-x 1 *** staff 4 11 13 15:11 b -> test
-rw-r--r-- 2 *** staff 0 11 13 13:13 c
-rw-r--r-- 2 *** staff 0 11 13 13:13 test
# c和test的inode編碼是一樣的,且它們的文件大小也是一樣的。
$ ls -li
total 8
6558451 -rw-r--r-- 1 *** staff 0 11 13 13:52 a
6559485 lrwxr-xr-x 1 *** staff 4 11 13 15:11 b -> test
6557711 -rw-r--r-- 2 *** staff 0 11 13 13:13 c
6557711 -rw-r--r-- 2 *** staff 0 11 13 13:13 test
參考文獻:
- Linux命令行與shell腳本編程大全(第三版)