網(wǎng)站建設和優(yōu)化日照seo公司
Linux—ln(link files)命令使用方法
在 Linux 系統(tǒng)中工作時,需要在不同的目錄中使用相同的文件時,不必在每個目錄下都復制一份文件,這樣不僅浪費磁盤空間,還會導致文件管理上的混亂。
ln
(link files) 便是 Linux 中用于創(chuàng)建鏈接(也稱為快捷方式)的命令。 使用 ln 命令創(chuàng)建鏈接是一種高效且節(jié)省空間的方法。
ln
命令可以實現(xiàn)—將文件放在一個固定的目錄中,然后在其他目錄下創(chuàng)建指向該文件的鏈接。
鏈接link可以分為兩種類型:硬鏈接(hard link)和軟鏈接(symbolic link 或者 soft link)。
一、硬鏈接 (Hard Link)
定義:
- 硬鏈接(
hard link
)是指向同一個文件系統(tǒng)中的同一個 inode 的多個文件名。(注意哈:同一文件系統(tǒng)!!! A hardlink can only work on the same filesystem.🤣🤣🤣) - 每個文件在Linux系統(tǒng)中都有一個inode,包含了文件的所有信息(除了文件名和數(shù)據(jù))。
-
每個硬鏈接(Hard Link)都是文件的一個獨立入口點,它們共享相同的數(shù)據(jù)塊。
-
創(chuàng)建一個硬鏈接時,實際上是為這個inode創(chuàng)建了一個新的入口點。
- Hardlink has the same inode number and permissions of original file.
- 即使原始文件被刪除,只要還有一個硬鏈接存在,文件的數(shù)據(jù)就仍然可以訪問。
- Hard Link Demo:
Hard Link 特性:
- 共享數(shù)據(jù):所有硬鏈接都指向同一個文件內(nèi)容,對任何一個硬鏈接進行修改,其他硬鏈接也會看到這些更改。
- 刪除原文件:刪除原文件不會影響其他硬鏈接,硬鏈接是平等的,沒有所謂的“原文件”,只要還有一個硬鏈接存在,文件的數(shù)據(jù)就仍然可以訪問。
- 限制:硬鏈接不能跨文件系統(tǒng)創(chuàng)建,也不能為目錄創(chuàng)建硬鏈接。(記住哈:hard link— 必須同一文件系統(tǒng) + no 目錄🤣🤣🤣)
二、軟鏈接 (Symbolic Link 或 Soft Link)
定義:
- 軟鏈接是一個特殊的文件,其中包含指向另一個文件或目錄的路徑。
- 軟鏈接本身是一個獨立的文件,只是其內(nèi)容是指向另一個文件或目錄的路徑。
- Softlink has different inode number and file permissions than original file.
- Softlink Demo:
Soft link特性:
- 獨立性:軟鏈接是一個獨立的文件,即使原始文件被刪除,軟鏈接仍然存在,但會變成無效鏈接(稱為“斷鏈”)。
- 跨文件系統(tǒng):軟鏈接可以跨文件系統(tǒng)創(chuàng)建,也可以指向目錄。
- 路徑:軟鏈接可以使用絕對路徑或相對路徑。
三、創(chuàng)建、刪除link語法
3.1 硬鏈接
ln [選項] 目標文件 鏈接文件
-f
或--force
:如果目標文件已經(jīng)存在,則先刪除再創(chuàng)建鏈接。-i
:在刪除已存在的目標文件前提示用戶。-v
或--verbose
:顯示詳細的處理信息。
- 創(chuàng)建硬鏈接(可以相對路徑 也可絕對路徑哈🤣🤣🤣):
已有文件 /home/user/documents/report.txt
,在 /home/user/backup
目錄下創(chuàng)建一個硬鏈接 report_link.txt
:
ln /home/user/documents/report.txt /home/user/backup/report_link.txt
-
強制創(chuàng)建硬鏈接(如果目標文件已存在則替換):
ln -f /home/user/documents/report.txt /home/user/backup/report_link.txt
-
創(chuàng)建硬鏈接并顯示詳細信息:
ln -v /home/user/documents/report.txt /home/user/backup/report_link.txt
重要的事情說三遍🤣🤣🤣:
- 硬鏈接必須在同一個文件系統(tǒng)內(nèi):硬鏈接不能跨文件系統(tǒng)創(chuàng)建。
- 硬鏈接不能指向目錄:只能為普通文件創(chuàng)建硬鏈接。
- 硬鏈接是平等的:所有硬鏈接都指向同一個 inode,因此刪除任意一個硬鏈接都不會影響其他硬鏈接或原始文件。
Tips:可以使用 ls -i
命令查看文件的 inode
號,從而確認兩個文件是否為硬鏈接:
如果兩個文件的 inode 號相同,那么它們就是硬鏈接。
3.2 軟鏈接
ln -s [選項] 目標文件 鏈接文件
-f
或--force
:如果目標文件已經(jīng)存在,則先刪除再創(chuàng)建鏈接。-i
:在刪除已存在的目標文件前提示用戶。-v
或--verbose
:顯示詳細的處理信息。
- 創(chuàng)建軟鏈接:
/home/user/documents/report.txt
,在 /home/user/backup
目錄下創(chuàng)建一個軟鏈接 report_symlink.txt
:
ln -s /home/user/documents/report.txt /home/user/backup/report_symlink.txt
-
強制創(chuàng)建軟鏈接(如果目標文件已存在則替換):
ln -sf /home/user/documents/report.txt /home/user/backup/report_symlink.txt
-
創(chuàng)建軟鏈接并顯示詳細信息:
ln -sv /home/user/documents/report.txt /home/user/backup/report_symlink.txt
重要的事情說三遍🤣🤣🤣:
- 軟鏈接可以跨文件系統(tǒng):符號鏈接可以指向不同文件系統(tǒng)中的文件或目錄。
- 軟鏈接可以指向目錄:不僅可以為文件創(chuàng)建軟鏈接,還可以為目錄創(chuàng)建軟鏈接。
- 軟鏈接的路徑:可以使用絕對路徑或相對路徑。相對路徑是相對于軟鏈接所在目錄的路徑。
Tips:可以使用 ls -l
命令查看文件的詳細信息,從而確認是否為軟鏈接及其指向的目標:
ls -l /home/user/backup/report_symlink.txt
lrwxrwxrwx 1 user user 27 Oct 25 14:30 /home/user/backup/report_symlink.txt -> /home/user/documents/report.txt
l
表示這是一個符號鏈接,->
后面的部分表示鏈接指向的目標文件。
3.3 刪除link
使用 rm
命令
rm
是一個通用的刪除命令,可以用來刪除文件、目錄和鏈接。對于刪除鏈接,rm
命令是最常用的。
語法:
rm [選項] 鏈接路徑
刪除符號鏈接 symlink.txt
和一個硬鏈接 hardlink.txt
:
rm symlink.txt
rm hardlink.txt
使用 unlink
命令
unlink
命令專門用于刪除鏈接。它的功能與 rm
命令類似,但更專注于刪除單個文件或鏈接。
unlink 鏈接路徑
unlink symlink.txt
unlink hardlink.txt
-
通用性:
rm
是一個更通用的命令,可以刪除文件、目錄和鏈接。unlink
專門用于刪除單個文件或鏈接。
-
交互性:
rm
命令提供了更多的選項,例如-i
選項可以在刪除前提示用戶確認。unlink
命令沒有這些額外的選項,它只是一個簡單的刪除操作。
-
安全性:
- 使用
rm
時,可以通過-i
選項增加安全性,防止誤刪文件。 unlink
沒有這種選項,因此在使用時需要更加小心。
- 使用
- 推薦使用
rm
命令,因為它更常用,功能更豐富,尤其是在需要增加安全性的場景下。 - 如果只需要簡單地刪除一個鏈接,可以使用
unlink
命令。
tips:無論使用哪個命令,刪除鏈接后,鏈接文件本身會被移除,但硬鏈接對應的原始文件不會受到影響(除非這是最后一個硬鏈接)。對于符號鏈接,刪除后只會移除鏈接文件,不會影響原始文件。
Link Tips:
- 節(jié)省磁盤空間:無論是硬鏈接還是軟鏈接,都不會復制原文件的內(nèi)容,只占用非常少量的磁盤空間。
- 易于維護:只需要在一個地方更新文件,所有鏈接都會自動反映這些更改。
- 靈活性:軟鏈接特別靈活,可以跨文件系統(tǒng)創(chuàng)建,也可以指向目錄。