2016年8月21日 星期日

☆Linux 基礎指令--ln / Basic Command

[Linux][CentOS][RHEL][Shell][Script][Command] 


[說明][Explain]
ln : Linux基礎入門指令,提供檔案連結的基本操作。連結又分為兩種類型:硬連結(Hard Link)與軟連結(Symbolic)。由於兩種連結概念不同,Grass再簡單的補充一下說明:

  • 硬連結(Hard Link):建立硬連結(HardLink)之後,檔案之間會同時指向同一個儲存區塊(BlockNode),有點像共享檔案文件的概念,若有兩個檔案A,B建立了硬連結(HardLink),A檔案被異動修改時,B檔案也會一齊被異動,反向亦然。
  • 軟連結(Symbolic):類似Windows系統中的連結(捷徑),建立軟連結(Symbolic)後,連結檔案文件會直接指向到所指定來源的檔案,常用於Libary的連結,或是執行檔快速連結。

[用法][Usage]
ln  [Option] [SourceFile]  ...  [TargetLink]


[常用選項][Option]
-s, --symbolic                          刪除目錄下所有檔案(包含子目錄)

[實例說明][Example Explain]
使用 Linux系統中 /usr的目錄做範例說明,/usr為系統預設目錄即Unix Software Resource,存放系統資源的地方。

[實例][Example]
功能:在 /usr/ln 底下硬連結(HardLink)檔案,並說明硬連結(HardLink)的模式!
a. 建立hlk.log檔案,並使用硬連結(HardLink)產生檔案,檔案大小相同
[root@pglab1 usr]# mkdir ln
[root@pglab1 usr]# cd ln
[root@pglab1 ln]# ls .. >hlk.log
[root@pglab1 ln]# ls -l
總計 4
-rw-r--r--. 1 root root 80 2016-08-22 14:05 hlk.log
[root@pglab1 ln]# ln hlk.log hlk1.ln
[root@pglab1 ln]# ls -l
總計 8
-rw-r--r--. 2 root root 80 2016-08-22 14:05 hlk1.ln
-rw-r--r--. 2 root root 80 2016-08-22 14:05 hlk.log
[root@pglab1 ln]# ln hlk.log hlk2.ln
[root@pglab1 ln]# ls -l
總計 12
-rw-r--r--. 3 root root 80 2016-08-22 14:05 hlk1.ln
-rw-r--r--. 3 root root 80 2016-08-22 14:05 hlk2.ln
-rw-r--r--. 3 root root 80 2016-08-22 14:05 hlk.log
[root@pglab1 ln]#
b.承上例,修改硬連結檔案內容,檢視其變化!
[root@pglab1 ln]# ls >> hlk1.ln
[root@pglab1 ln]# ls -l
總計 12
-rw-r--r--. 3 root root 104 2016-08-22 14:12 hlk1.ln
-rw-r--r--. 3 root root 104 2016-08-22 14:12 hlk2.ln
-rw-r--r--. 3 root root 104 2016-08-22 14:12 hlk.log
[root@pglab1 ln]# ls >> hlk.log
[root@pglab1 ln]# ls -l
總計 12
-rw-r--r--. 3 root root 128 2016-08-22 14:13 hlk1.ln
-rw-r--r--. 3 root root 128 2016-08-22 14:13 hlk2.ln
-rw-r--r--. 3 root root 128 2016-08-22 14:13 hlk.log
[root@pglab1 ln]# cat hlk2.ln
abc.txt
bin
etc
fun
games
include
lib
lib64
libexec
ln
local
sbin
share
src
tmp
hlk1.ln
hlk2.ln
hlk.log
hlk1.ln
hlk2.ln
hlk.log
[root@pglab1 ln]# 
c.承上例,刪除硬連結檔案,檢視其變化!
[root@pglab1 ln]# ls -l
總計 12
-rw-r--r--. 3 root root 128 2016-08-22 14:13 hlk1.ln
-rw-r--r--. 3 root root 128 2016-08-22 14:13 hlk2.ln
-rw-r--r--. 3 root root 128 2016-08-22 14:13 hlk.log
[root@pglab1 ln]# rm hlk1.ln
rm:是否移除普通檔案‘hlk1.ln’? y
[root@pglab1 ln]# ls -l
總計 8
-rw-r--r--. 2 root root 128 2016-08-22 14:13 hlk2.ln
-rw-r--r--. 2 root root 128 2016-08-22 14:13 hlk.log
[root@pglab1 ln]#
HINT: 1.硬連結(HardLink)數量顯示在檔案屬性後面的數字(rwx... 2),2.硬連結(HardLink)所有連結檔案內容都會一致,3.刪除硬連結(HardLink)其中一個檔案並不影響內容。

功能:在/usr/ln/ 建立一個軟連結(SymbolicLink) hlk.lnk。
[root@pglab1 ln]# ls -l
總計 8
-rw-r--r--. 2 root root 128 2016-08-22 14:13 hlk2.ln
-rw-r--r--. 2 root root 128 2016-08-22 14:13 hlk.log
[root@pglab1 ln]# ln -s hlk.log hlk.lnk
[root@pglab1 ln]# ls -l
總計 8
-rw-r--r--. 2 root root 128 2016-08-22 14:13 hlk2.ln
lrwxrwxrwx. 1 root root 7 2016-08-22 14:34 hlk.lnk -> hlk.log
-rw-r--r--. 2 root root 128 2016-08-22 14:13 hlk.log
[root@pglab1 ln]#


功能:運用Find指令找到硬連結(HardLink)所有檔案。
[root@pglab1 ln]# ls -l
總計 8
-rw-r--r--. 2 root root 128 2016-08-22 14:13 hlk2.ln
lrwxrwxrwx. 1 root root 7 2016-08-22 14:34 hlk.lnk -> hlk.log
-rw-r--r--. 2 root root 128 2016-08-22 14:13 hlk.log
[root@pglab1 ln]# find -type f -links +1
./hlk.log
./hlk2.ln
[root@pglab1 ln]#

回到==>Linux 常用基礎指令 / Basic Command
回到==>Linux 常用指令整理 / Useful commands

沒有留言:

張貼留言