技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

Linux中使用ln命令在文件之間建立連接的用法講解

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-02-04 18:31┆點擊:

  在Unix世界里有兩個'link'(連接)概念,一般稱之為硬連接和軟連接。一個硬連 接僅僅是一個文件名。(一個文件可以有好幾個文件名,只有將最后一個文件名從 磁盤上刪除,才能把這個文件刪掉。文件名的個數(shù)是由ls(1)來確定的。所有的文件 名都處于同一個狀態(tài),也就沒有什么lq源名字rq 之說。通常文件系統(tǒng)里的一個 文件的所有名字包含著一樣的數(shù)據(jù)信息,不過這樣也不是必需的。)一個軟連接 (或符號連接)是完全不同的:它是一個包含了路徑信息的小小的指定文件。因此, 軟連接可以指向不同文件系統(tǒng)里的文件(比如由NFS裝載的不同機器文件系統(tǒng)上的文 件),甚至可以指向一個不一定確實存在的文件。在軟連接文件被訪問(系統(tǒng)調(diào)用 open(2) 或stat(2))的時候,操作系統(tǒng)用該文件所包含的路徑替換該文件的訪問介 入點,從而實現(xiàn)對所指文件的訪問。(用命令rm(1)和unlink(2)可以刪除連接,但 不是刪除該文件所指向的文件。系統(tǒng)指定調(diào)用lstat(2)和readlink(2) 來讀取連接 文件與其所指文件的狀態(tài)。到底是對軟連接文件操作,還是對被指向文件操作,由 于不同操作系統(tǒng)件存在不同的系統(tǒng)調(diào)用,而存在著差異。)

  ln 在文件間產(chǎn)生連接。缺省時,產(chǎn)生硬連接,有-s選項,則產(chǎn)生符號(軟)連接。

  如果僅僅只給出一個文件名,那么ln將在當(dāng)前目錄里產(chǎn)生這個文件的連接, 也就是說,以該文件(的最后一個)名稱等同的名字在當(dāng)前目錄里產(chǎn)生一個連接 (GNU范圍內(nèi)); 如果最后一個參數(shù)是一個已存在的目錄名, ln 將在那個目錄里給每一個源文件用以與源文件相同的文件名產(chǎn)生連接, (不同情況見以下--no-dereference的描述); 如果只給出兩個文件名,ln將產(chǎn)生源文件的連接; 如果最后一個參數(shù)不是一個目錄名或多于兩個文件名,則報錯。

  缺省時,ln不刪除已存在的文件或符號連接。 (因此,它可以被用來鎖定目標(biāo)文件,即當(dāng)dest已經(jīng)不存在時) 但選項-f可以強制執(zhí)行。

  在已存在的實現(xiàn)中,只有超級用戶才能建立目錄的硬連接。 POSIX 禁止系統(tǒng)調(diào)用link(2)和ln建立目錄的硬連接 (但是允許在不同的文件系統(tǒng)間建立硬連接)。

  使用方式 : ln [options] source dist,其中 option 的格式為 :

  [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}][--help] [--version] [--]

  說明 : Linux/Unix 檔案系統(tǒng)中,有所謂的連結(jié)(link),我們可以將其視為檔案的別名,而連結(jié)又可分為兩種 : 硬連結(jié)(hard link)與軟連結(jié)(symbolic link),硬連結(jié)的意思是一個檔案可以有多個名稱,而軟連結(jié)的方式則是產(chǎn)生一個特殊的檔案,該檔案的內(nèi)容是指向另一個檔案的位置。硬連結(jié)是存在同一個檔案系統(tǒng)中,而軟連結(jié)卻可以跨越不同的檔案系統(tǒng)。

  ln source dist 是產(chǎn)生一個連結(jié)(dist)到 source,至于使用硬連結(jié)或軟鏈結(jié)則由參數(shù)決定。

  不論是硬連結(jié)或軟鏈結(jié)都不會將原本的檔案復(fù)制一份,只會占用非常少量的磁碟空間。

  -f : 鏈結(jié)時先將與 dist 同檔名的檔案刪除

  -d : 允許系統(tǒng)管理者硬鏈結(jié)自己的目錄

  -i : 在刪除與 dist 同檔名的檔案時先進行詢問

  -n : 在進行軟連結(jié)時,將 dist 視為一般的檔案

  -s : 進行軟鏈結(jié)(symbolic link)

  -v : 在連結(jié)之前顯示其檔名

  -b : 將在鏈結(jié)時會被覆寫或刪除的檔案進行備份

  -S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾

  -V METHOD : 指定備份的方式

  --help : 顯示輔助說明

  --version : 顯示版本

  注意:

  如果不使用 -s 標(biāo)志,就不能在文件系統(tǒng)之間鏈接文件。

  如果 TargetDirectory 已經(jīng)是鏈接到目錄上的一個符號鏈接,那么 ln 命令將現(xiàn)有的目標(biāo)視為文件。這意味著,類似于 ln -fs somepath/lname symdir 的命令不會遵循現(xiàn)有的 symdir 符號鏈接,作為代替,它會創(chuàng)建一個從 somepath/lname 到 symdir 的新的符號鏈接。

  退出狀態(tài)

  此命令返回以下的退出值:

  0 所有指定的文件都成功鏈接上了。

  >0 出現(xiàn)一次錯誤。

  例:

  代碼如下:

  [root@localhost test_ln]# ln -s /home/zhangy/heartbeat ./ #在當(dāng)前目錄下,建立heartbeat的軟連接

  [root@localhost test_ln]# ln -s /home/zhangy/test ./ #建立目錄的軟件接

  [root@localhost test_ln]# ln /home/zhangy/tee.txt ./ #建立硬連接

  [root@localhost test_ln]# ll

  總計 4

  lrwxrwxrwx 1 root root 22 05-11 11:04 heartbeat -> /home/zhangy/heartbeat #文件軟件接

  -rw-r--r-- 2 root root 0 2010-11-24 tee.txt #文件硬連接

  lrwxrwxrwx 1 root root 17 05-11 11:04 test -> /home/zhangy/test #目錄軟件接

  1.為了創(chuàng)建到一個文件的另一個鏈接(別名),請輸入:

  代碼如下:

  ln -f chap1 intro