簡明Linux命令行筆記:ln


為文件建立鏈接

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.硬鏈接有一定局限性,因此符號鏈接適用范圍更廣

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM