1. 程式人生 > >Centos之鏈接命令

Centos之鏈接命令

目錄 書籍 選項 har systemd windows strong node link

鏈接命令:ln (link)

ln -s [源文件] [目標文件]

功能描述:生成鏈接文件

選項: -s 創建軟鏈接

硬鏈接特征:

1,擁有相同的i節點和存儲block塊,可以看作是同一個文件;

2,可通過i節點識別;

3,不能跨分區;

4,不能針對目錄使用;

我們把/root下的anaconda-ks.cfg創建一個硬鏈接到/tmp下

[[email protected] ~]# ls

anaconda-ks.cfg 牛逼

[[email protected] ~]# ln /root/anaconda-ks.cfg /tmp/ana.hard

[[email protected] ~]# ll

總用量 4

-rw-------. 2 root root 1237 6月 10 05:24 anaconda-ks.cfg

drwxr-xr-x. 3 root root 22 6月 18 11:03 牛逼

[[email protected] ~]# ll /tmp/

總用量 16

-rw-------. 1 root root 1237 6月 18 10:12 abc

-rw-------. 1 root root 1237 6月 18 10:16 anaconda-ks.cfg

-rw-------. 2 root root 1237 6月 10 05:24 ana.hard

-rwx------. 1 root root 836 6月 10 05:24 ks-script-p0Ci4J

drwx------. 3 root root 17 6月 12 23:50 systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r

drwx------. 3 root root 17 6月 17 17:42 systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt

drwx------. 3 root root 17 6月 16 04:51 systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy

drwx------. 3 root root 17 6月 10 05:26 systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX

drwx------. 3 root root 17 6月 14 06:38 systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0

drwx------. 3 root root 17 6月 11 04:08 systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl

-rw-------. 1 root root 0 6月 10 05:19 yum.log

drwxr-xr-x. 3 root root 30 6月 18 10:24 書籍2

drwxr-xr-x. 3 root root 30 6月 18 10:24 書籍2哈哈

[[email protected] ~]#

看著基本一樣;

我們用vi 打開文件 vi /root/anaconda-ks.cfg

技術分享

我們隨便修改下這個文件 (不要擔心,這個文件是安裝時候產生的,就算刪除了也沒事)

然後 esc :wq 保存並且退出;

我們打開/tmp下的ana.hard文件

技術分享

我們發現 硬鏈接內容也變了;

假如我們修改 硬鏈接裏的內容,anaconda-ks.cfg裏的同樣修改;(大夥自己測試下)

這裏說明同一個文件相當於有兩個入口,我們可以查看下兩個入口的inode;

[[email protected] ~]# ls -i /root/anaconda-ks.cfg /tmp/ana.hard

33574979 /root/anaconda-ks.cfg 33574979 /tmp/ana.hard

[[email protected] ~]#

我們發現 inode節點號一樣;

就算我們把其中一個刪除,也不會影響文件另外一個的訪問;(大夥如果舍不得刪除這個文件,可以自己新建文件測試)

硬鏈接的一些特性,比如不能跨分區,不能針對目錄使用,以及容易誤操作文件。所以我們一般不推薦使用,我們推薦使用軟鏈接,類似windows裏的快捷方式;

軟鏈接特征:

1,類似Windows快捷方式;

2,軟鏈接擁有自己的I節點和Block塊,但是數據塊中只保存原有文件的文件名和I節點號,並沒有實際的文件數據;

3,lrwxrwxrwx l 軟鏈接 軟鏈接文件權限都為 rwxrwxrwx

4,修改任意文件,另一個都改變;

5,刪除原文件,軟鏈接不能使用;

軟鏈接和硬鏈接的重要區別是 假如把原文件刪除,軟鏈接則不能用,但是假如是硬鏈接,刪除原文件的話,不影響硬鏈的使用;

我們在root下 用touch命令新建一個a文件

然後用echo命令追加點內容進入 ,再用cat命令打印下內容

[[email protected] ~]# touch a

[[email protected] ~]# echo 1111 >> /root/a

[[email protected] ~]# cat /root/a

1111

[[email protected] ~]#

然後在/tmp/下創建一個軟鏈接

ln -s /root/a /tmp/a.soft

我們來看下這個兩個文件的inode節點

[[email protected] ~]# ll -i /tmp/a.soft /root/a

33575024 -rw-r--r--. 1 root root 5 6月 19 16:01 /root/a

17066258 lrwxrwxrwx. 1 root root 7 6月 19 16:41 /tmp/a.soft -> /root/a

我們發現是不一樣的,我們可以把軟鏈接理解成是指向原文件的引用 存的僅僅是地址,這樣,假如原文件刪除了,那軟鏈接就沒啥用了。但是這裏 我們無論是修改兩個文件的任意一個,另外一個始終能看到最終結果;

[[email protected] ~]# echo 2222 >> /root/a

[[email protected] ~]# cat /root/a

1111

2222

[[email protected] ~]# cat /tmp/a.soft

1111

2222

[[email protected] ~]#

我們修改了原文件a 然後我們打開軟鏈接 能看到結果

[[email protected] ~]# echo 3333 >> /tmp/a.soft

[[email protected] ~]# cat /tmp/a.soft

1111

2222

3333

[[email protected] ~]# cat /root/a

1111

2222

3333

[[email protected] ~]#

我們修改軟鏈接,用a.soft 和a打開 都能看到最終結果;

假如我們刪除原文件

[[email protected] ~]# rm -rf /root/a

[[email protected] ~]# cat /tmp/a.soft

cat: /tmp/a.soft: 沒有那個文件或目錄

[[email protected] ~]#

我們打開軟鏈接 報錯。

Centos之鏈接命令