linux下的连接文件——软连接和硬连接的区别
軟連接可以理解為,源文件的快捷方式,軟連接文件記錄的是源文件的路徑,占用空間非常小。當把源文件刪除后,那么軟連接文件也就變成一個壞文件了,不能使用了。
硬連接和源文件的inode信息是一模一樣的,可以說硬鏈接文件只是復制了一份源文件的inode信息,在我們看來硬鏈接文件和源文件沒有什么區別,刪除任何一個文件對方都不受影響,唯一的是少了一份inode,硬鏈接只能在同一個分區下創建,而軟連接不受限制。硬鏈接文件和源文件雖然看起來像是兩個文件,但是只占用一個文件的磁盤空間。
軟連接
?ln -s ? ? 源文件或目錄 ? ?目標文件或目錄
創建軟連接最好加絕對路徑
| 1 2 3 | [?root@localhost?~]#?ln?-s?/root/3.txt?/tmp/21.txt?? [?root@localhost?~]#?ls?-l?/tmp/21.txt?? lrwxrwxrwx.?1?root?root?11?3月??20?06:14?/tmp/21.txt?->?/root/3.txt |
目錄軟連接,目標目錄不制定的話,會自動創建一個源目錄同名的目錄;
| 1 2 3 | [root@localhost?~]#?ln?-s?/root/aa?/tmp/ [?root@localhost?~]#?ls?-l?/tmp/aa? lrwxrwxrwx.?1?root?root?8?3月??20?06:19?/tmp/aa?->?/root/aa |
pwd -P ? ?顯示物理路徑,真正的路徑
pwd -L ? ?顯示邏輯路徑,軟連接的路徑,默認pwd顯示的是邏輯路徑;
| 1 2 3 4 5 6 7 | [root@localhost~]#?cd?/tmp/aa/ [root@localhost?aa]#?pwd /tmp/aa [root@localhost?aa]#?pwd?-P /root/aa? [root@localhost?aa]#?pwd?-L? /tmp/aa |
硬連接 ??
ln 源文件 目標文件 ? ??
ln 不加s 就是創建硬連接
1、硬連接不可以作用于目錄。因為每個目錄下面都會有一個.和..也就是說每個目錄下面的子目錄肯定會有它本身和它上一級目錄,那么一旦設置了硬鏈接則會造成一種混亂,設置會導致死循環。硬鏈接的文件并不會占用空間大小,它只是復制了該文件的一份inode信息。
2、硬連接不可以跨分區鏈接。?因為inode的生成是在分區格式化劃分好的。一個分區的inode是各不相同的。每個分區都有inode.有相同的inode會引起文件的混亂。
| 1 2 3 4 5 6 7 8 9 10 | [?root@localhost?~]#?ln?yong?yong1?ln:?"yong":?不允許將硬鏈接指向目錄 [?root@localhost?~]#??ln?3.txt?4.txt [?root@localhost?~]#?ls?-l?3.txt?4.txt?? -rw-r--r--.?2?root?root?0?3月??20?06:08?3.txt? -rw-r--r--.?2?root?root?0?3月??20?06:08?4.txt? [?root@localhost?~]#?ls?-li?3.txt?4.txt??130736? -rw-r--r--.?2?root?root?0?3月??20?06:08?3.txt?130736? -rw-r--r--.?2?root?root?0?3月??20?06:08?4.txt? [?root@localhost?~]#??ln?3.txt?/boot/4.txt ln:?創建硬鏈接"/boot/4.txt"?=>?"3.txt":?無效的跨設備連接 |
硬連接文件2個文件具有相同的inode值,可以隨便刪除其中的一個;
本文轉自 模范生 51CTO博客,原文鏈接:http://blog.51cto.com/mofansheng/1622578,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的linux下的连接文件——软连接和硬连接的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flex入门
- 下一篇: 我在ChinaUnix上看到的有点点用的