ln命令是‘link’的縮寫,其功能主要是用來創建文件的鏈接,其中鏈接類型包含硬件鏈接(hard link)和軟鏈接 (symbolic link)
語法:
ln [OPTION] SOURCE TARGET
常用選項:
-s 創建軟鏈接
硬鏈接: ln 源文件 目標文件,硬鏈接生成的是普通文件(-)
軟鏈接: ln -s 源文件 目標文件 軟鏈接生成的是符號鏈接文件(l)
2)那么什么是硬鏈接
硬鏈接是指通過索引節點來進行鏈接,所有文件文件都有一個獨有的inode節點。在linux系統中,如果多個文件名指向同一個索引節點,這種情況下的文件就稱為硬鏈接。硬鏈接的作用:允許一個文件擁有多個有效路徑名(多個入口)
[root@fenfa tmp]# ll
total 8
-rw-r--r-- 1 root root 187 Jan 9 13:15 hosts
drwxr-xr-x 5 root root 4096 Jan 9 11:55 test
[root@fenfa tmp]# ln hosts aaa
[root@fenfa tmp]# ls -i hosts aaa
394603 aaa 394603 hosts
(通過上面發現,2個文件的inode的節點完全一樣)
[root@fenfa tmp]# rm -rf hosts
You have mail in /var/spool/mail/root
[root@fenfa tmp]# cat hosts
cat: hosts: No such file or directory
[root@fenfa tmp]# ln aaa hosts
[root@fenfa tmp]# cat hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.2.11.239 testsrs.91als.cn
(當我刪除源文件的時候,其實這個文件沒有被刪除,我們可以通過硬鏈接數恢復回來)
關于硬鏈接知識總結:
* 具有相同inode節點號的多個文件互為硬鏈接文件
* 刪除硬鏈接文件或刪除源文件之一,文件實體并未刪除,只有刪除所有的,文件實體才會被刪除
* 硬鏈接文件其實就是文件的另一個入口
* 可以通過給文件設置硬鏈接文件,防止重要文件被誤刪除
* 硬鏈接文件,可以用rm命令刪除
* 不能給目錄創建硬鏈接
drwxr-xr-x 2 root root 4096 Jan 9 11:58 dir1
既然不可以為目錄創建硬鏈接,那為什么這邊的硬鏈接數為2呢?
[root@fenfa tmp]# ls -ldi /var/tmp/dir1/.
782485 drwxr-xr-x 2 root root 4096 Jan 9 11:58 /var/tmp/dir1/.
You have mail in /var/spool/mail/root
[root@fenfa tmp]# ls -ldi /var/tmp/dir1/
782485 drwxr-xr-x 2 root root 4096 Jan 9 11:58 /var/tmp/dir1/
由于每個目錄下有一個'.'代表當前目錄,就查看,發現他們的inode的數相同,由此看看他們的硬鏈接數為2
在父目錄中創建一個子目錄,父目錄的鏈接數增加1,案例如下
drwxrwxrwt. 5 root root 4096 Jan 9 11:58 tmp (當前為5)
[root@fenfa tmp]# mkdir ddd
[root@fenfa tmp]# mkdir fff
[root@fenfa var]# ls -ld tmp/
drwxrwxrwt. 7 root root 4096 Jan 9 13:35 tmp/
(此時發現硬鏈接數7咯,那是因為沒創建一個目錄,每個目錄里有..隱藏文件,指向上一個目錄)
3)什么是軟鏈接
軟鏈接語法:
ln -s 源文件 目標文件 (目標文件不能事先存在)
[root@fenfa tmp]# ln -s hosts soft
[root@fenfa tmp]# ls -li hosts soft
394603 -rw-r--r-- 1 root root 187 Jan 9 13:15 hosts
394604 lrwxrwxrwx 1 root root 5 Jan 9 13:24 soft -> hosts
(由上面可以看出,軟鏈接的文件的inode值和源文件不同,軟鏈接文件的文件類型為l)
軟鏈接知識總結
* 軟鏈接類似于windows的快捷方式
* 即使刪除了源文件,軟鏈接文件亦然存在,但是無法訪問指定的源文件路徑
* 軟鏈接失效的時候,是白字紅底閃爍提示
* 軟鏈接和源文件是不同類型的文件,也是不同的文件,inode號也不相同
* 可以通過unlink取消軟鏈接
* 可以給目錄創建軟鏈接
- 第一章:文件和目錄操作類命令
- 第一節:pwd命令
- 第二節:cd命令
- 第三節:mkdir命令
- 第四節:touch命令
- 第五節:ls命令
- 第六節:cp命令
- 第八節: mv命令
- 第九節:ln命令
- 第十節:find命令
- 第十一節:chattr命令
- 第十二節:chown命令
- 第十三節:chmod命令
- 第二章:文件過濾和內容編輯類命令
- 第一節: cat命令
- 第二節:less命令
- 第三節:head命令
- 第四節:tail命令
- 第五節:cut命令
- 第六節:sort命令
- 第七節:wc命令
- 第八節:tr命令
- 第三章:文本處理三劍客
- 第一節:grep命令
- 第二節:sed命令
- 第四章:linux信息顯示類或搜索命令
- 第一節:uname命令
- 第二節:du命令
- 第三節:data命令
- 第四節:echo命令
- 第五節:watch命令
- 第五章: 文件備份和壓縮類命令
- 第一節:tar命令
- 第二節:gzip壓縮
- 第三節:zip和upzip命令
- 第四節:scp命令
- 第五節: rsync文件同步工具命令
- 第六章:Linux用戶管理及用戶信息查詢類命令
- 第一節:useradd命令
- 第二節:usermod命令
- 第三節:userdel命令
- 第四節:groupadd和groupdel命令
- 第五節:passwd命令
- 第六節:su命令
- 第七節:visudo命令
- 第八節:id命令
- 第九節:w和who命令
- 第十節:last和lastb命令
- 第七章: Linux磁盤及文件系統管理
- 第一節:fdisk命令
- 第二節: partprobe命令
- 第三節:parted磁盤分區工具
- 第四節:mkfs命令
- 第五節:dumpe2fs命令
- 第六節: fsck命令
- 第七節:mount和umount命令
- 第八節:dd命令
- 第九節:df命令