為文件建立鏈接
ln [options] existing-file [new-link]
ln [options] existing-file-list directory
ln可以為一個或多個文件創建硬鏈接或符號(軟)鏈接。對於目錄,只能創建符號鏈接,而不能創建硬鏈接
參數
第一種格式:existing-file 是要創建鏈接的文件的路徑名,new-link 是新鏈接的路徑名。當創建符號鏈接時,existing-file 可以是目錄。
如果省略new-link,ln就在工作目錄中為existing-file創建一個鏈接,新鏈接使用與existing-file相同的文件名
第二種格式:existing-file-list 是要創建鏈接的普通文件的路徑名列表,ln將在目錄directory中創建新的鏈接,鏈接名與原文件名相同
選項
-b 如果需要創建的目標鏈接已存在相同文件名,則備份
-f 強制創建目標鏈接
-i 覆蓋相同文件名時提示
-s 創建符號鏈接
注意
硬鏈接:默認情況下,ln用來創建硬鏈接,硬鏈接與原始文件無法區分且無法指向目錄。同一個文件的所有硬鏈接必須位於相同的文件系統中,
符號鏈接:符號鏈接可以指向目錄,並且能夠位於不同的文件系統中
示例
ln 創建硬鏈接
$ ln /home/siu/BackupName.sql . $ ls -l 總用量 0 -rw-r--r-- 2 siu siu 0 1月 7 13:01 BackupName.sql
這里在當前目錄下創建了一個文件硬鏈接,后面的.也可以省略
ln -s 創建符號鏈接
$ ln -s /tmp/ ./abc $ ls -l 總用量 0 lrwxrwxrwx 1 siu siu 5 1月 8 20:07 abc -> /tmp/
此處為/tmp創建了一個符號鏈接/abc
ln -sb
$ ln -sb aa bb $ ls -l 總用量 0 -rw-r--r-- 1 siu siu 0 1月 8 20:11 aa lrwxrwxrwx 1 siu siu 2 1月 8 20:11 bb -> aa -rw-r--r-- 1 siu siu 0 1月 8 20:11 bb~
創建符號鏈接,並備份已有的文件
ln -sf
$ ln -s aa cc ln: 無法創建符號鏈接"cc": 文件已存在 $ ln -sf aa cc $ ls -l 總用量 0 -rw-r--r-- 1 siu siu 0 1月 8 20:11 aa lrwxrwxrwx 1 siu siu 2 1月 8 20:11 bb -> aa -rw-r--r-- 1 siu siu 0 1月 8 20:11 bb~ lrwxrwxrwx 1 siu siu 2 1月 8 20:13 cc -> aa
強制創建符號鏈接
ln -si
$ ln -si aa bb ln:是否替換"bb"? y $ ls -l 總用量 0 -rw-r--r-- 1 siu siu 0 1月 8 20:14 aa lrwxrwxrwx 1 siu siu 2 1月 8 20:14 bb -> aa
創建符號鏈接時進行提示
Tips
1.硬鏈接通常和普通文件一樣,無法區分其是否為鏈接
2.硬鏈接大小屬性和原文件一樣,如果刪除原文件,硬鏈接同樣可以使用
3.硬鏈接有一定局限性,因此符號鏈接適用范圍更廣