1. Linux系統中,什么是軟鏈接文件?
軟鏈接類似於windows系統中的快捷方式。軟鏈接文件其實是將inode指向源文件的block,當我們訪問這個軟鏈接文件時,其實訪問的是源文件本身。那么當我們對一個文件創建多個軟鏈接,其實就是多個inode指向同一個block。當我們刪除軟鏈接文件時,其實只是刪除了一個inode指向,並不會對源文件源文件造成影響,若源文件被刪除,軟鏈接文件也會失效。
如何創建軟鏈接文件
[root@oracle12c tmp]# ll total 208 -rw-r--r-- 1 root root 209369 Nov 2 23:34 data.txt [root@oracle12c tmp]# ln -s data.txt data_soft.txt [root@oracle12c tmp]# ll -hi total 208K 33596166 lrwxrwxrwx 1 root root 8 Nov 2 23:39 data_soft.txt -> data.txt 33554504 -rw-r--r-- 1 root root 205K Nov 2 23:34 data.txt
特點:
1. 軟鏈接文件與源文件文件類型和權限不同
2. 軟鏈接文件與源文件大小不一致
3. 軟鏈接文件與源文件的inode號不相同
4. 軟鏈接文件對應的源文件若是被刪除,則該軟鏈接文件失效
5. 最好以絕對路徑創建軟鏈接文件
2. Linux系統中,什么是硬鏈接文件?
硬鏈接文件類似於一個超市的多個門,硬鏈接其實是同一個文件使用了多個別名,他們具有共同的 inode。
如何創建硬鏈接文件
[root@oracle12c tmp]# ln data.txt data_hard.txt [root@oracle12c tmp]# ll -hi total 416K 33554504 -rw-r--r-- 2 root root 205K Nov 2 23:34 data_hard.txt 33596166 lrwxrwxrwx 1 root root 8 Nov 2 23:39 data_soft.txt -> data.txt 33554504 -rw-r--r-- 2 root root 205K Nov 2 23:34 data.txt
特點:
1. 硬鏈接文件與源文件inode號相同,相反inode號相同的文件不一定是互為硬鏈接文件,前提是在同一個分區內。
2. 硬鏈接文件對應的源文件被刪除后,硬鏈接文件仍然有效
3. 操作系統中,目錄不能創建硬鏈接
4. 硬鏈接可以防止誤刪除,但是不能防止誤修改。如果一個文件的硬鏈接數為1,刪除后,將會徹底被刪除。
5. 硬鏈接文件與源文件的文件類型、權限、大小都相同
案例
當刪除掉源文件后,軟鏈接文件和硬鏈接文件的區別
[root@oracle12c tmp]# rm -f data.txt [root@oracle12c tmp]# ll -hi total 208K 33554504 -rw-r--r-- 1 root root 205K Nov 2 23:34 data_hard.txt 33596166 lrwxrwxrwx 1 root root 8 Nov 2 23:39 data_soft.txt -> data.txt [root@oracle12c tmp]# tail data_hard.txt │ ├── vars │ └── version-groups.conf ├── yum.conf └── yum.repos.d ├── backup │ └── redhat.repo ├── local.repo └── redhat.repo 801 directories, 3021 files [root@oracle12c tmp]# tail data_soft.txt tail: cannot open ‘data_soft.txt’ for reading: No such file or directory
當源文件被刪除,軟鏈接文件失效,硬鏈接文件仍然正常訪問。