1. 程式人生 > >每日一linux命令(49)-------ln 命令

每日一linux命令(49)-------ln 命令



ln是linux中又一個非常重要命令,它的功能是為某一個檔案在另外一個位置建立一個同步的連結.當我們需要在不同的目錄,用到相同的檔案時,我們不需要在每一個需要的目錄下都放一個必須相同的檔案,我們只要在某個固定的目錄,放上該檔案,然後在 其它的目錄下用ln命令連結(link)它就可以,不必重複的佔用磁碟空間。

1.命令格式:

 ln [引數][原始檔或目錄][目標檔案或目錄]

2.命令功能:

Linux檔案系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種 : 硬連結(hard link)與軟連結(symbolic link),硬連結的意思是一個檔案可以有多個名稱,而軟

連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔案系統中,而軟連結卻可以跨越不同的檔案系統。

軟連結:

1.軟連結,以路徑的形式存在。類似於Windows作業系統中的快捷方式

2.軟連結可以 跨檔案系統 ,硬連結不可以

3.軟連結可以對一個不存在的檔名進行連結

4.軟連結可以對目錄進行連結

硬連結:

1.硬連結,以檔案副本的形式存在。但不佔用實際空間。

2.不允許給目錄建立硬連結

3.硬連結只有在同一個檔案系統中才能建立

 這裡有兩點要注意:

第一,ln命令會保持每一處連結檔案的同步性,也就是說,不論你改動了哪一處,其它的檔案都會發生相同的變化;

第二,ln的連結又分軟連結和硬連結兩種,軟連結就是ln –s 原始檔 目標檔案,它只會在你選定的位置上生成一個檔案的映象,不會佔用磁碟空間,硬連結 ln 原始檔 目標檔案,沒有引數-s, 它會在你選定的位置上生成一個和原始檔大小相同的檔案,無論是軟連結還是硬連結,檔案都保持同步變化。

ln指令用在連結檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是一個已經存在的目錄,則會把前面指定的所有檔案或目錄複製到該目錄中。若同時指定多個檔案或目錄,且最後的目的地並非是一個已存在的目錄,則會出現錯誤資訊。

3.命令引數:

必要引數:

-b 刪除,覆蓋以前建立的連結

-d 允許超級使用者製作目錄的硬連結

-f 強制執行

-i 互動模式,檔案存在則提示使用者是否覆蓋

-n 把符號連結視為一般目錄

-s 軟連結(符號連結)

-v 顯示詳細的處理過程

選擇引數:

-S “-S<字尾備份字串> ”或 “--suffix=<字尾備份字串>”

-V “-V<備份方式>”或“--version-control=<備份方式>”

--help 顯示幫助資訊

--version 顯示版本資訊

4.使用例項:

例項1:給檔案建立軟連結

命令:

ln -s log2013.log link2013

輸出:

[[email protected] test]# ll

-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

[[email protected] test]# ln -s log2013.log link2013

[[email protected] test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

說明:

為log2013.log檔案建立軟連結link2013,如果log2013.log丟失,link2013將失效

例項2:給檔案建立硬連結

命令:

ln log2013.log ln2013

輸出:

[[email protected] test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

[[email protected] test]# ln log2013.log ln2013

[[email protected] test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 2 root bin      61 11-13 06:03 ln2013

-rw-r--r-- 2 root bin      61 11-13 06:03 log2013.log

說明:

為log2013.log建立硬連結ln2013,log2013.log與ln2013的各項屬性相同

例項3:接上面兩例項,連結完畢後,刪除和重建連結原檔案

命令:

輸出:

[[email protected] test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 2 root bin      61 11-13 06:03 ln2013

-rw-r--r-- 2 root bin      61 11-13 06:03 log2013.log

[[email protected] test]# rm -rf log2013.log 

[[email protected] test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 1 root bin      61 11-13 06:03 ln2013

[[email protected] test]# touch log2013.log

[[email protected] test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 1 root bin      61 11-13 06:03 ln2013

---xrw-r-- 1 root bin  302108 11-13 06:03 log2012.log

-rw-r--r-- 1 root root      0 12-07 16:19 log2013.log

[[email protected] test]# vi log2013.log 

2013-01

2013-02

2013-03

2013-04

2013-05

2013-06

2013-07

2013-08

2013-09

2013-10

2013-11

2013-12[[email protected] test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 1 root bin      61 11-13 06:03 ln2013

-rw-r--r-- 1 root root     96 12-07 16:21 log2013.log

[[email protected] test]# cat link2013 

2013-01

2013-02

2013-03

2013-04

2013-05

2013-06

2013-07

2013-08

2013-09

2013-10

2013-11

2013-12

[[email protected] test]# cat ln2013 

hostnamebaidu=baidu.com

hostnamesina=sina.com

hostnames=true

說明:

1.原始檔被刪除後,並沒有影響硬連結檔案;軟連結檔案在centos系統下不斷的閃爍,提示原始檔已經不存在

2.重建原始檔後,軟連結不在閃爍提示,說明已經連結成功,找到了連結檔案系統;重建後,硬連結檔案並沒有受到原始檔影響,硬連結檔案的內容還是保留了刪除前原始檔的內容,說明硬連結已經失效

例項4:將檔案連結為另一個目錄中的相同名字

命令:

ln log2013.log test3

輸出:

[[email protected] test]# ln log2013.log test3

[[email protected] test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 1 root bin      61 11-13 06:03 ln2013

-rw-r--r-- 2 root root     96 12-07 16:21 log2013.log

[root@localhost test]# cd test3

[[email protected] test3]# ll

-rw-r--r-- 2 root root 96 12-07 16:21 log2013.log

[root@localhost test3]# vi log2013.log 

2013-01

2013-02

2013-03

2013-04

2013-05

2013-06

2013-07

2013-08

2013-09

2013-10[root@localhost test3]# ll

-rw-r--r-- 2 root root 80 12-07 16:36 log2013.log

[root@localhost test3]# cd ..

[[email protected] test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 1 root bin      61 11-13 06:03 ln2013

-rw-r--r-- 2 root root     80 12-07 16:36 log2013.log

[root@localhost test]#

說明:

在test3目錄中建立了log2013.log的硬連結,修改test3目錄中的log2013.log檔案,同時也會同步到原始檔

例項5:給目錄建立軟連結

命令:

ln -sv /opt/soft/test/test3 /opt/soft/test/test5

輸出:

[[email protected] test]# ll

drwxr-xr-x 2 root root   4096 12-07 16:36 test3

drwxr-xr-x 2 root root   4096 12-07 16:57 test5

[root@localhost test]# cd test5

[[email protected] test5]# ll

lrwxrwxrwx 1 root root 5 12-07 16:57 test3 -> test3

[root@localhost test5]# cd test3

-bash: cd: test3: 符號連線的層數過多

[root@localhost test5]# 

[[email protected] test5]# 

[[email protected] test5]# ll

lrwxrwxrwx 1 root root 5 12-07 16:57 test3 -> test3

[root@localhost test5]# rm -rf test3

[[email protected] test5]# ll

[[email protected] test5]# ln -sv /opt/soft/test/test3 /opt/soft/test/test5

建立指向“/opt/soft/test/test3”的符號連結“/opt/soft/test/test5/test3”

[root@localhost test5]# ll

lrwxrwxrwx 1 root root 20 12-07 16:59 test3 -> /opt/soft/test/test3

[root@localhost test5]# 

[[email protected] test5]# cd test3

[[email protected] test3]# ll

總計 4

-rw-r--r-- 2 root root 80 12-07 16:36 log2013.log

[root@localhost test3]# touch log2014.log

[[email protected] test3]# ll

總計 4

-rw-r--r-- 2 root root 80 12-07 16:36 log2013.log

-rw-r--r-- 1 root root  0 12-07 17:05 log2014.log

[root@localhost test3]# cd ..

[[email protected] test5]# cd ..

說明:

1.目錄只能建立軟連結

2.目錄建立連結必須用絕對路徑,相對路徑建立會不成功,會提示:符號連線的層數過多 這樣的錯誤

3.在連結目標目錄中修改檔案都會在原始檔目錄中同步變化

相關推薦

每日linux命令49-------ln 命令

 ln是linux中又一個非常重要命令,它的功能是為某一個檔案在另外一個位置建立一個同步的連結.當我們需要在不同的目錄,用到相同的檔案時,我們不需要在每一個需要的目錄下都放一個必須相同的檔案,我們只要在某個固定的目錄,放上該檔案,然後在 其它的目錄下用ln命令連結(li

Linux命令49——export命令builtin

1.命令簡介 export命令為Shell內建命令,用於設定或顯示環境變數,環境變數包含變數與函式。 在Shell中執行程式時,Shell會提供一組環境變數。export可新增、刪除或修改環境變數,供後續被執行的程式使用。export的作用效果僅限於當前登陸。 2.命令格式

每日linux命令27-------tar命令

 通過SSH訪問伺服器,難免會要用到壓縮,解壓縮,打包,解包等,這時候tar命令就是是必不可少的一個功能強大的工具。linux中最流行的tar是麻雀雖小,五臟俱全,功能強大。 tar命令可以為linux的檔案和目錄建立檔案。利用tar,可以為某一特定檔案建立檔案(備份檔

每天一個linux命令43--ln

ln是linux中又一個非常重要命令,它的功能是為某一個檔案在另外一個位置建立一個同步的連結.當我們需要在不同的目錄,用到相同的檔案時,我們不需要在每一個需要的目錄下都放一個必須相同的檔案,我們只要

Linux筆記49——正則表示式與字元命令

正則表示式 正則表示式用於字串的模式分割,匹配,查詢以及替換操作 比如有一篇很長很長的文章,我們如何找到自己想要的資訊?可以使用正則的匹配功能 正則表示式與萬用字元 萬用字元有: 1. * :匹配任意字元 2. ?:匹配任意一個字元 3. []

Linux命令48——stat命令

1.命令簡介 stat命令用於顯示檔案或檔案系統的詳細資訊。在顯示檔案資訊時,比ls命令更加詳細。 2.命令格式 stat [OPTION]... FILE.. 3.命令選項 -L, --dereference:跟隨符號連結解析原檔案而非符號連結; -f, --fi

Linux命令47——file命令

1.命令簡介 file命令用來識別檔案型別,對檔案的檢查分為檔案系統、魔法幻數檢查和語言檢查三個過程,也可用來辨別一些檔案的編碼格式。它是通過檢視檔案的頭部資訊來獲取檔案型別,而不是像Windows通過副檔名來確定檔案型別的。 2.命令格式 file [-bchiklLNnp

Linux學習——其他命令

其他命令 目標 查詢檔案 find 軟連結 ln 打包和壓縮 tar 軟體安裝 apt-get 01. 查詢檔案 find 命令功能非常強

Linux命令50——date命令

1.命令簡介 date命令用於按照指定格式顯示當前時間或者指定的時間,也可以設定系統時間。很多Shell腳本里面需要列印不同格式的時間或日期,以及要根據時間和日期執行操作,此時可以使用date命令來完成。在類Unix系統中,日期被儲存為一個整數,其大小為協調世界時(UTC)1970年

Linux命令46——read命令

1.命令簡介 read命令是Shell內建命令,用於從標準輸入或-u選項指定的檔案描述符中讀取單行,並將讀取的單行根據IFS變數分割成多個欄位,並將分割後的欄位分別賦值給指定的變數列表var_name。第一個欄位分配給第一個變數var_name1,第二個欄位分配

Linux有趣無用命令

準備 更新yum > yum update 安裝wget > yum install wget 下載EPEL > wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release

Linux命令52——ipcrm命令

1.命令簡介 ipcrm命令用於刪除指定ID的IPC(Inter-Process Communication,程序間通訊)物件,包括訊息佇列(message queue)、共享記憶體(shared memory)和訊號量(semaphore),同時將與IPC物件關聯的資料一併刪除,只

Linux命令51——ipcs命令

1.命令簡介 ipcs命令用於報告Linux中程序間通訊設施的狀態,顯示的資訊包括訊息列表、共享記憶體和訊號量的資訊。可以幫助開發人員定位程序間通訊中出現的問題。 2.命令格式 ipcs [resource-option] [output-format] ipcs [reso

linux基本命令19——find命令

   Linux下find命令在目錄結構中搜索檔案,並執行指定的操作。find命令提供了相當多的查詢條件,功能很強大。由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網路檔案系統(NFS),find命令在該檔案系統中同

每天一個linux命令29: chown命令

chown將指定檔案的擁有者改為指定的使用者或組,使用者可以是使用者名稱或者使用者ID;組可以是組名或者組ID;檔案是以空格分開的要改變許可權的檔案列表,支援萬用字元。系統管理員經常使用chown命令,在將檔案拷貝到另一個使用者的名錄下之後,讓使用者擁有使用該檔案的許可權。 

Linux學習15--管道命令

管道命令 如果一些資料要經過幾道手續之後才能得到我們想要的格式,應該如何來設定。這就是管道(pipe)命令的問題了,它使用 “|” 這個界定符號。而且管道命令與連續執行命令是不一樣的。 假如我們想知道 /etc 下面有多少檔案,那麼可以利用 ls /etc

Linux命令1——xargs命令

1.功能: xargs可以將stdin中以空格或換行符進行分隔的資料,形成以空格分隔的引數(arguments),傳遞給其他命令。因為以空格作為分隔符,所以有一些檔名或者其他意義的名詞內含有空格的時候,xargs可能會誤判。簡單來說,xargs是給其他命令傳遞

linux基本命令30——chown命令

      chown將指定檔案的擁有者改為指定的使用者或組,使用者可以是使用者名稱或者使用者ID;組可以是組名或者組ID;檔案是以空格分開的要改變許可權的檔案列表,支援萬用字元。系統管理員經常使用chown命令,在將檔案拷貝到另一個使用者的名錄下之後,讓使用者擁有使用該

Linux命令36——awk命令

1.簡介 AWK是一個優良的文字處理工具,Linux及Unix環境中現有的功能最強大的資料處理引擎之一。資料可以來自標準輸入(stdin)、一個或多個檔案,或其它命令的輸出。它支援使用者自定義函式和動態正則表示式等先進功能,是linux/unix下的一個強大程

linux基本命令32——gzip命令

減少檔案大小有兩個明顯的好處,一是可以減少儲存空間,二是通過網路傳輸檔案時,可以減少傳輸的時間。gzip是在Linux系統中經常使用的一個對檔案進行壓縮和解壓縮的命令,既方便又好用。gzip不僅可以用來壓縮大的、較少使用的檔案以節省磁碟空間,還可以和tar命令一起構成Li