【LINUX学习】链接文件
生活随笔
收集整理的這篇文章主要介紹了
【LINUX学习】链接文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
linux下的連接文件和windows下的快捷方式有點(diǎn)像。不過linux 下有硬鏈接和軟鏈接兩種。 硬鏈接: 是在某個目錄下新增一個源鏈接文件的關(guān)聯(lián)數(shù)據(jù)。比如 為/etc/passwd 創(chuàng)建一個硬鏈接/tmp/passwd-hd ?其實(shí)就是這兩個文件是同一個文件,通過etc 目錄中的passwd 文件可以知道passwd 的inode 放在A處,而tmp 目錄中的pass-hd 也指向A處,所以passwd 這個文件的inode 和 block 都沒有改變。 硬鏈接的限制: 1 不能分區(qū)連接 2 不能link 目錄! 如果將兩個目錄做硬鏈接,對其中的任一個做更改,另一個也會做相應(yīng)的更改,因此比較復(fù)雜。所以linux 并不支持對目錄的硬鏈接。
軟鏈接: 是建立一個獨(dú)立的文件,而這個文件會讓讀數(shù)據(jù)時指向源文件。也因此當(dāng)源文件被刪除時,軟連接不可用。由于軟鏈接是建立了一個獨(dú)立的文件,所以會使用inode和block 。 有以上的介紹可以知道 硬鏈接比較安全,因?yàn)榧词乖次募粍h除了,也可以通過硬鏈接文件依然可以訪問被刪除的數(shù)據(jù)。但是由于硬鏈接的限制導(dǎo)致實(shí)際應(yīng)用中軟鏈接的應(yīng)用比較多。看看下面的實(shí)驗(yàn):
[root@localhost tmp]# cp ?/etc/passwd ? ?passwd [root@localhost tmp]# ls gconfd-root ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? scim-bridge-0.3.0.socket-0@localhost:0.0 httpd-2.2.17.tar.bz2 ? ? ? ? ? ? ? ? ? ? ? ?scim-panel-socket:0-root passwd ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?virtual-root.r1kfiJ
[root@localhost tmp]# du -sb ; df -i ? 9966607?.???--當(dāng)前文件的大小 文件系統(tǒng) ? ? ? ? ? ? ? Inode (I)已用 (I)可用 (I)已用% 掛載點(diǎn) /dev/sda2 ? ? ? ? ? ?1022976 ? 88836 ?934140 ? ?9% / /dev/sda1 ? ? ? ? ? ? ?26104 ? ? ?35 ? 26069 ? ?1% /boot tmpfs ? ? ? ? ? ? ? ? ?59414 ? ? ? 1 ? 59413 ? ?1% /dev/shm [root@localhost tmp]# ln passwd passwd-hd ?做硬鏈接 [root@localhost tmp]# du -sb ; df -i 9966607 . ?--大小不變 文件系統(tǒng) ? ? ? ? ? ? ? Inode (I)已用 (I)可用 (I)已用% 掛載點(diǎn) /dev/sda2 ? ? ? ? ? ?1022976 ? 88836 ?934140 ? ?9% / /dev/sda1 ? ? ? ? ? ? ?26104 ? ? ?35 ? 26069 ? ?1% /boot tmpfs ? ? ? ? ? ? ? ? ?59414 ? ? ? 1 ? 59413 ? ?1% /dev/shm [root@localhost tmp]# cat passwd-hd ?--查看passwd的內(nèi)容 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin --省略 sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin yang:x:500:500:yang:/home/yang:/bin/bash [root@localhost tmp]# cat passwd | wc -l 38 [root@localhost tmp]# vi passwd-hd 編輯?passwd-hd 刪除一些行數(shù) 然后查看兩個文件,結(jié)果passwd 也被修改了! [root@localhost tmp]# cat passwd-hd | wc -l 33 [root@localhost tmp]# cat passwd | wc -l 33
[root@localhost tmp]# cp ?/etc/passwd passwds [root@localhost tmp]# du -sb ; df -i 9968023 . 文件系統(tǒng) ? ? ? ? ? ? ? Inode (I)已用 (I)可用 (I)已用% 掛載點(diǎn) /dev/sda2 ? ? ? ? ? ?1022976 ? 88837 ?934139 ? ?9% / /dev/sda1 ? ? ? ? ? ? ?26104 ? ? ?35 ? 26069 ? ?1% /boot tmpfs ? ? ? ? ? ? ? ? ?59414 ? ? ? 1 ? 59413 ? ?1% /dev/shm [root@localhost tmp]# ln -s passwds passwd-so [root@localhost tmp]# ls -li passwd* 127927 -rw-r--r-- 2 root root 1416 11-27 19:53 passwd 127927 -rw-r--r-- 2 root root 1416 11-27 19:53 passwd-hd ---兩個文件的inode 是一樣的。 127930 -rw-r--r-- 1 root root 1713 11-26 17:45 passwds 127931 lrwxrwxrwx 1 root root ? ?7 11-27 19:55 passwd-so -> passwds --軟連接的inedo不一樣 [root@localhost tmp]# cat passwd-so root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news: uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin rpm:x:37:37::/var/lib/rpm:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin avahi:x:70:70:Avahi daemon:/:/sbin/nologin mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin nscd:x:28:28:NSCD Daemon:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin pcap:x:77:77::/var/arpwatch:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin distcache:x:94:94:Distcache:/:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin squid:x:23:23::/var/spool/squid:/sbin/nologin xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin yang:x:500:500:yang:/home/yang:/bin/bash [root@localhost tmp]# du -sb ; df -i 9968030 . 文件系統(tǒng) ? ? ? ? ? ? ? Inode (I)已用 (I)可用 (I)已用% 掛載點(diǎn) /dev/sda2 ? ? ? ? ? ?1022976 ? 88838 ?934138 ? ?9% / /dev/sda1 ? ? ? ? ? ? ?26104 ? ? ?35 ? 26069 ? ?1% /boot tmpfs ? ? ? ? ? ? ? ? ?59414 ? ? ? 1 ? 59413 ? ?1% /dev/shm 刪除passwds 之后 使用軟鏈接查看: [root@localhost tmp]# rm passwds rm:是否刪除 一般文件 “passwds”? y [root@localhost tmp]# cat passwd-so cat: passwd-so: 沒有那個文件或目錄 刪除passwd 之后 使用硬鏈接查看: [root@localhost tmp]# rm passwd rm:是否刪除 一般文件 “passwd”? y [root@localhost tmp]# cat passwd-hd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ---省略-- pcap:x:77:77::/var/arpwatch:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin distcache:x:94:94:Distcache:/:/sbin/nologin --------------------------EOF-------------------------
軟鏈接: 是建立一個獨(dú)立的文件,而這個文件會讓讀數(shù)據(jù)時指向源文件。也因此當(dāng)源文件被刪除時,軟連接不可用。由于軟鏈接是建立了一個獨(dú)立的文件,所以會使用inode和block 。 有以上的介紹可以知道 硬鏈接比較安全,因?yàn)榧词乖次募粍h除了,也可以通過硬鏈接文件依然可以訪問被刪除的數(shù)據(jù)。但是由于硬鏈接的限制導(dǎo)致實(shí)際應(yīng)用中軟鏈接的應(yīng)用比較多。看看下面的實(shí)驗(yàn):
[root@localhost tmp]# cp ?/etc/passwd ? ?passwd [root@localhost tmp]# ls gconfd-root ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? scim-bridge-0.3.0.socket-0@localhost:0.0 httpd-2.2.17.tar.bz2 ? ? ? ? ? ? ? ? ? ? ? ?scim-panel-socket:0-root passwd ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?virtual-root.r1kfiJ
[root@localhost tmp]# du -sb ; df -i ? 9966607?.???--當(dāng)前文件的大小 文件系統(tǒng) ? ? ? ? ? ? ? Inode (I)已用 (I)可用 (I)已用% 掛載點(diǎn) /dev/sda2 ? ? ? ? ? ?1022976 ? 88836 ?934140 ? ?9% / /dev/sda1 ? ? ? ? ? ? ?26104 ? ? ?35 ? 26069 ? ?1% /boot tmpfs ? ? ? ? ? ? ? ? ?59414 ? ? ? 1 ? 59413 ? ?1% /dev/shm [root@localhost tmp]# ln passwd passwd-hd ?做硬鏈接 [root@localhost tmp]# du -sb ; df -i 9966607 . ?--大小不變 文件系統(tǒng) ? ? ? ? ? ? ? Inode (I)已用 (I)可用 (I)已用% 掛載點(diǎn) /dev/sda2 ? ? ? ? ? ?1022976 ? 88836 ?934140 ? ?9% / /dev/sda1 ? ? ? ? ? ? ?26104 ? ? ?35 ? 26069 ? ?1% /boot tmpfs ? ? ? ? ? ? ? ? ?59414 ? ? ? 1 ? 59413 ? ?1% /dev/shm [root@localhost tmp]# cat passwd-hd ?--查看passwd的內(nèi)容 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin --省略 sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin yang:x:500:500:yang:/home/yang:/bin/bash [root@localhost tmp]# cat passwd | wc -l 38 [root@localhost tmp]# vi passwd-hd 編輯?passwd-hd 刪除一些行數(shù) 然后查看兩個文件,結(jié)果passwd 也被修改了! [root@localhost tmp]# cat passwd-hd | wc -l 33 [root@localhost tmp]# cat passwd | wc -l 33
[root@localhost tmp]# cp ?/etc/passwd passwds [root@localhost tmp]# du -sb ; df -i 9968023 . 文件系統(tǒng) ? ? ? ? ? ? ? Inode (I)已用 (I)可用 (I)已用% 掛載點(diǎn) /dev/sda2 ? ? ? ? ? ?1022976 ? 88837 ?934139 ? ?9% / /dev/sda1 ? ? ? ? ? ? ?26104 ? ? ?35 ? 26069 ? ?1% /boot tmpfs ? ? ? ? ? ? ? ? ?59414 ? ? ? 1 ? 59413 ? ?1% /dev/shm [root@localhost tmp]# ln -s passwds passwd-so [root@localhost tmp]# ls -li passwd* 127927 -rw-r--r-- 2 root root 1416 11-27 19:53 passwd 127927 -rw-r--r-- 2 root root 1416 11-27 19:53 passwd-hd ---兩個文件的inode 是一樣的。 127930 -rw-r--r-- 1 root root 1713 11-26 17:45 passwds 127931 lrwxrwxrwx 1 root root ? ?7 11-27 19:55 passwd-so -> passwds --軟連接的inedo不一樣 [root@localhost tmp]# cat passwd-so root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news: uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin rpm:x:37:37::/var/lib/rpm:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin avahi:x:70:70:Avahi daemon:/:/sbin/nologin mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin nscd:x:28:28:NSCD Daemon:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin pcap:x:77:77::/var/arpwatch:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin distcache:x:94:94:Distcache:/:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin squid:x:23:23::/var/spool/squid:/sbin/nologin xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin yang:x:500:500:yang:/home/yang:/bin/bash [root@localhost tmp]# du -sb ; df -i 9968030 . 文件系統(tǒng) ? ? ? ? ? ? ? Inode (I)已用 (I)可用 (I)已用% 掛載點(diǎn) /dev/sda2 ? ? ? ? ? ?1022976 ? 88838 ?934138 ? ?9% / /dev/sda1 ? ? ? ? ? ? ?26104 ? ? ?35 ? 26069 ? ?1% /boot tmpfs ? ? ? ? ? ? ? ? ?59414 ? ? ? 1 ? 59413 ? ?1% /dev/shm 刪除passwds 之后 使用軟鏈接查看: [root@localhost tmp]# rm passwds rm:是否刪除 一般文件 “passwds”? y [root@localhost tmp]# cat passwd-so cat: passwd-so: 沒有那個文件或目錄 刪除passwd 之后 使用硬鏈接查看: [root@localhost tmp]# rm passwd rm:是否刪除 一般文件 “passwd”? y [root@localhost tmp]# cat passwd-hd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ---省略-- pcap:x:77:77::/var/arpwatch:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin distcache:x:94:94:Distcache:/:/sbin/nologin --------------------------EOF-------------------------
總結(jié)
以上是生活随笔為你收集整理的【LINUX学习】链接文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生成二维码的 jQuery 插件:jqu
- 下一篇: ubuntu,kali linux和wi