Linux連結檔案操作__Linux

來源:互聯網
上載者:User

1.      連結的分類:

連結分為軟連結和永久連結:

1>    軟連結:

軟連結又叫符號連結,這類檔案包含了另外一個檔案的路徑。可以串連任意檔案和目錄,也可以串連不同的檔案系統檔案,也可以串連不存在的檔案,還可以迴圈串連自己。

2>    永久連結是一個已存在檔案的另一個名字。注意:

1)       只能在同一個檔案系統中的檔案才能建立永久連結;

2)       不允許給目錄建立永久連結。

2.      在shell介面使用ln命令建立連結

        當我們需要在不同的目錄,用到相同的檔案時,我們不需要在每一個需要的目錄下都放一個必須相同的檔案,我們只要在某個固定的目錄,放上該檔案,然後在其它的目錄下用ln命令連結(link)它就可以,不必重複的佔用磁碟空間。例如:

  ln  –s  /bin/less   /usr/local/bin/less,其中-s 是代號(symbolic)的意思。

如果你用ls察看一個目錄時,發現有的檔案後面有一個@的符號,那就是一個用ln命令產生的檔案,用ls –l命令去察看,就可以看到顯示的link的路徑了。

 

 這裡有兩點要注意:

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

2>    ln的連結又軟連結和永久連結兩種:

1)       軟連結建立指令:ln –s filename  link_filename,意為建立一個名為                  “link_filename”指向“filename”的連結檔案,它只會在你選定的位置上產生一          個檔案的鏡像,類似windows下的快鍵方式。

2)       永久連結建立指令:ln  filename  link_filename,沒有參數-s, 它會在        你選定的位置上產生一個和源檔案大小相同的檔案。

 

        無論是軟連結還是永久連結,檔案都保持同步變化。

 

 

 

   指令參數詳細說明:

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

-d : 允許系統管理者硬鏈結自己的目錄

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

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

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

-v : 在連結之前顯示其檔名

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

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

-V METHOD : 指定備份的方式

--help : 顯示輔助說明

--version : 顯示版本

 

 

3.      C程式中使用link函數建立

link函數申明如下:

#include <unistd.h>

int link (const char * oldpath, const char * newpath);

函數說明:link()以參數newpath 指定的名稱來建立一個新的連結(永久連結)到參數oldpath 所指定的已存在檔案. 如果參數newpath 指定的名稱為一已存在的檔案則不會建立連結。

傳回值:成功則返回0, 失敗返回-1, 錯誤原因存於errno。

錯誤碼:

 1、EXDEV 參數oldpath 與newpath 不是建立在同一檔案系統.

 2、EPERM 參數oldpath 與newpath 所指的檔案系統不支援硬串連

 3、EROFS 檔案存在於唯讀檔案系統內

 4、EFAULT 參數oldpath 或newpath 指標超出可存取記憶體空間.

 5、ENAMETOLLONG 參數oldpath 或newpath 太長

 6、ENOMEM 核心記憶體不足

 7、EEXIST 參數newpath 所指的檔案名稱已存在.

 8、EMLINK 參數oldpath 所指的檔案已達最大串連數目.

 9、ELOOP 參數pathname 有過多符號串連問題

 10、ENOSPC 檔案系統的剩餘空間不足.

 11、EIO I/O 存取錯誤.

 

範例:

 /* 建立/etc/passwd 的硬串連為pass */

 #include<unistd.h>

 main()

 {

    link("/etc/passwd", "pass");

 } 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.