當前位置:首頁 » 操作系統 » linux鏈接文件

linux鏈接文件

發布時間: 2022-01-11 11:53:11

A. 什麼是linux操作系統文件鏈接

鏈接類型及其意義

符號鏈接與硬鏈接在鏈接意義沒有什麼不同,只是在對目標文件的鏈接原理上有所不同。符號鏈接對應於C語言上的指針,符號鏈接文件只是保存目標文件的路徑,訪問是根據鏈接文件的路徑進行訪問;而硬鏈接是對應於C語言中的引用,硬鏈接文件中保存的是目標文件的inode結點。

正是由於鏈接方式的不同,這兩種鏈接呈現出不同的特性。符號鏈接通常被稱為軟鏈接,它的目標文件既可以是目錄,也可以是普通文件。由於符號鏈接文件中只是存放的目標文件的路徑,故它不會改變目標文件中的inode的引用計數。刪除目標文件對符號鏈接文件沒有什麼影響。硬鏈接文件則不同,它會改變目標文件的inode的引用計數,每新建一個硬鏈接文件時,目標文件的inode引用計數就會加一。刪除目標文件時,目標文件並不會真正的刪除,這里只是簡單的將目標文件的引用計數減一,目標文件並沒有刪除。詳情查看網頁鏈接

創建鏈接文件

創建硬鏈接文件的命令格式:ln [鏈接目標文件] [硬鏈接文件名]

創建符號鏈接文件的命令格式:ln -s [鏈接目標文件或目錄] [符號鏈接文件名]

舉例(以下例子中的當前目錄均為"/home/tingyu"):

在"/home/tingyu"目錄中創建目錄"/home/tingyu/hkc"的鏈接文件:ln -s /home/tingyu/hkc lnk

執行後的結果為:

tingyu@tingyu-laptop:~$ ln -s ./hkc lnk

tingyu@tingyu-laptop:~$ ls -l

total 32

drwxr-xr-x 2 tingyu tingyu 4096 2011-03-20 12:43 hkc

lrwxrwxrwx 1 tingyu tingyu 5 2011-03-20 12:43 lnk -> ./hkc

在"/home/tingyu"目錄中創建文件"/home/tingyu/hkc"的鏈接文件:ln /home/tingyu/hkc lnk

B. linux 如何查看一個軟連接實際指向的文件的位置

linux下查看軟連接的信息使用命令「ls -L」最後一列就是原始地址(實際指向的文件的位置)。ln -s /home/basic/dl/ build/執行完成後,會在build路徑下dl的目錄, 使用ls -l查看會發現build下的dl-〉/home/basic/dl,進入build/dl下即可查看與訪問相應的文件。

C. linux中什麼是鏈接文件軟鏈接和硬鏈接文件分別使用什麼指令創建二者有何異同

linux系統中鏈接文件分為硬鏈接和軟鏈接(軟鏈接也叫符號鏈接)。硬鏈接和軟鏈接都是指向文件的一種方式,但兩者有不同的地方,主要有以下不同:

1.硬鏈接是創建一個指向block的inode,有防止誤刪除的功能。因為刪除一個文件,實際上是刪除inode信息,切斷了inode與block之間的聯系。當給一個文件做了硬鏈接之後,刪除文件時,只會減少文件的鏈接數,當鏈接數為0時,才會徹底刪除該文件。
軟鏈接類似Windows系統的快捷方式,是一個完整的文件,有自己的inode和block,block的內容就是原文件的文件名。當原文件刪除後,軟鏈接就失效了,沒有防止誤刪除的功能。

2.文件的大小不一樣。由於硬鏈接是指向原文件的block,所以硬鏈接的文件大小和原文件大小是一致的。而軟鏈接是新的文件,block里是原文件的的文件名,所以軟鏈接文件的大小一般是4K,即一個block的大小。

3.硬鏈接不能給目錄做,不能跨分區做。軟鏈接則都可以。

創建硬鏈接命令:
ln file filenew #file為原文件名,filenew為新文件名。
創建軟鏈接命令:
ln -s file filenew #file為原文件名,filenew為新文件名。

D. Linux命令:搜索系統中的所有鏈接文件,並復制到主目錄中的link目錄中。

find
/
-type
l
-print
>>out.txt這是查看所有的鏈接文件的,運行上面的命令後,可以查看#cat
out.txt,就知道那些是鏈接文件了,也可以用#ls
-l
加out.txt鏈接名來測試一下,至於如何復制到主目錄中的link目錄中,我就不太清楚了,不過你可以試試這個#find
/
-type
l
-print
-ok
cp
{}
\;
/link
我回去試試看,再說!!

E. linux如何打開鏈接文件

鏈接:一種在共享文件和訪問它的用戶的若干目錄項之間建立聯系的一種方法。
Linux中包括兩種鏈接:硬鏈接(Hard Link)和軟鏈接(Soft Link),軟鏈接又稱為符號鏈接(Symbolic link)。
我們首先來了解一下幾個名詞:
索引節點(inode)
要了解鏈接,我們首先得了解一個概念,叫索引節點(inode)。在Linux系統中,內核為每一個新創建的文件分配一個Inode(索引結點),每個文件都有一個惟一的inode號,我們可以將inode簡單理解成一個指針,它永遠指向本文件的具體存儲位置。文件屬性保存在索引結點里,在訪問文件時,索引結點被復制到內存在,從而實現文件的快速訪問。系統是通過索引節點(而不是文件名)來定位每一個文件。
硬鏈接(Hard Link)
硬鏈接說白了是一個指針,指向文件索引節點,系統並不為它重新分配inode。可以用:ln命令來建立硬鏈接。
引用
ln [options] existingfile newfile
ln [options] existingfile-list directory

用法:
第一種為」existingfile」創建硬鏈接,文件名為」newfile」。
第二種在」directory」目錄中,為」 existingfile-list」中包含的所有文件創建一個同名的硬鏈接。
常用可選[options]:-f 無論」newfile」存在與否,都創建鏈接。-n 如果」newfile」已存在,就不創建鏈接。
軟鏈接(Soft Link)
軟鏈接又叫符號鏈接,這個文件包含了另一個文件的路徑名。可以是任意文件或目錄,可以鏈接不同文件系統的文件。和win下的快捷方式差不多。
可以用:ln -s 命令來建立軟鏈接。
引用
ln -s existingfile newfile
ln -s existingfile-list directory

下面我們用一個實例來說明硬鏈接和軟鏈接。
現在目錄下有兩個文件,一個名為file1,一個名為file2。
引用
$ ls –il
1052671 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:46 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2007-03-29 13:46 file2

首先先做一個file1的硬鏈接。
引用
$ ln file1 file1hard
$ls –il
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:46 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:46 file12
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:46 file1hard

這里我們注意在創建鏈接前,file1顯示的鏈接數目為1,創建鏈接後
1.file1和file1hard的鏈接數目都變為2。
2.file1和file1的inode號是一樣的,都是1052671。
3.file1和file1hard顯示的文件大小也是一樣,都是0B。
可見進行了ln命令的操作結果:file1和file1hard是同一個文件的兩個名字,它們具有同樣的索引節點號和文件屬性,建立文件file1的硬鏈接,就是為 file1的文件索引節點在當前目錄上建立一個新指針。你可以刪除其中任何一個,如rm file1,每次只會刪除一個指針,鏈接數同時減一,只有將所有指向文件內容的指針,也即鏈接數減為0時,內核才會把文件內容從磁碟上刪除。
盡管硬鏈接節省空間,也是Linux系統整合文件系統的傳統方式,但是存在一些不足之處:
1.不允許給目錄創建硬鏈接。
2.不可以在不同文件系統的文件間建立鏈接。
接著我們做一個指向file2的軟鏈接,軟鏈接克服了硬鏈接的不足,沒有任何文件系統的限制,任何用戶可以創建指向目錄的符號鏈接。因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網路對文件進行鏈接。
引用
$ ln -s file2 file2soft
$ ls –il
總用量 0
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:34 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:35 file2
1053313 lrwxrwxrwx 1 Leanx Leanx 5 2010-03-29 13:45 file2soft -> file2
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:34 file1hard

從上面鏈接後的結果可以看出來軟鏈接與硬鏈接,區別不僅僅是在概念上,在實現上也是完全不同的。
區別:
1.硬鏈接原文件/鏈接文件公用一個inode號,說明他們是同一個文件,而軟鏈接原文件/鏈接文件擁有不同的inode號,表明他們是兩個不同的文件;
2.在文件屬性上軟鏈接明確寫出了是鏈接文件,而硬鏈接沒有寫出來,因為在本質上硬鏈接文件和原文件是完全平等關系;
3.鏈接數目是不一樣的,軟鏈接的鏈接數目不會增加;
4.文件大小是不一樣的,硬鏈接文件顯示的大小是跟原文件是一樣的。而這里軟鏈接顯示的大小與原文件就不同了,file2大小是0B,而file2soft是5B。
總之,建立軟鏈接就是建立了一個新文件。當訪問鏈接文件時,系統就會發現他是個鏈接文件,它讀取鏈接文件找到真正要訪問的文件。
當然軟鏈接也有硬鏈接沒有的缺點,因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統就找不到了,而硬鏈接就沒有這個缺陷,你想怎麼移就怎麼移;還有它要系統分配額外的空間用於建立新的索引節點和保存原文件的路徑。

F. linux 鏈接文件有幾種那些用戶能建立

連接文件分兩種:
1、硬連接:ln file link-file
2、軟連接(符號連接):ln -s file link-file

G. 什麼是linux下的符號鏈接文件

一種被稱為硬鏈接(Hard
Link),另一種被稱為符號鏈接(Symbolic
Link,也叫做軟鏈接)。

H. linux怎麼將一個文件夾鏈接到另一個文件夾上

ln -s bbb的文件目錄 ccc的文件目錄

In的功能是為某一個文件在另外一個位置建立一個同步的鏈接,命令最常用的參數是-s,具體用法是:

ln -s 源文件 目標文件

-s 是 symbolic的意思。

ln的鏈接有軟鏈接和硬鏈接兩種。

軟鏈接就是ln -s ** **,只會在選定的位置上生成一個文件的鏡像,不會佔用磁碟空間。

硬鏈接ln
** **,沒有參數-s,在選定的位置上生成一個和源文件大小相同的文件。

無論是軟鏈接還是硬鏈接,文件都保持同步變化。軟鏈接是可以跨分區的,但是硬鏈接只能在同一分區內。

(8)linux鏈接文件擴展閱讀:

1、目錄不能建立硬鏈接,但可以建立軟鏈接。

ln-s
test_chk test_chk_ln

2、正確的刪除方式(刪除軟鏈接,但不刪除實際數據):

rm -rf ./test_chk_ln

3、錯誤的刪除方式:

rm -rf ./test_chk_ln/ (這樣就會把原來test_chk下的內容刪除)

4、用ls查看一個目錄時,發現有的文件後面有一個@的符號,那就是一個用ln命令生成的文件。用ls
-l命令去查看,就可以看到顯示的link的路徑。

I. linux下的文件連接有什麼作用

linux 里安裝ISO文件就像windows一樣,需要先載入iso里的文件,然後運行裡面的文件。不同的是windows需要用虛擬光碟機等軟體載入ISO文件;Linux有命令直接載入ISO文件1、將iso文件拷貝到linux系統里,比如放到/opt下2、掛載ISO文件:mount -o loop /opt/a.iso /mnt/iso (後面為掛載目錄,可自行創建)3、cd /mnt/iso 即可運行iso里的文件。

J. 查看linux系統中所有鏈接文件

find命令用於查找文件,格式為:「find [查找路徑] 尋找條件 操作」。
我在書中反反復復的提到「Linux系統中的一切都是文件」,接下來您就要感受到這份力量了。咱們在Linux系統中的搜索工作一般都是通過find命令來完成的,它可以根據不同的文件特性來做為匹配項(如文件名、大小、修改時間、許可權等信息),一旦匹配到了則會默認為用戶顯示到屏幕上來,基礎的匹配項目請見下表即可,我主要講解下「--exec」參數重要的作用,這個參數是用於將find命令搜索到的結果交由給後面的命令再進一步做處理,十分類似於咱們將在下一章中提到的管道符技術。
編輯
參數 作用
-name 匹配名稱
-perm 匹配許可權(mode為完全匹配,-mode為包含即可)
-user 匹配所有者
-group 匹配所有組
-mtime -n +n 匹配修改內容的時間(-n指n天以內,+n指n天以前)
-atime -n +n 匹配訪問文件的時間-n指n天以內,+n指n天以前
-ctime -n +n 匹配修改許可權的時間-n指n天以內,+n指n天以前
-nouser 匹配無所有者的文件
-nogroup 匹配無所有組的文件
-newer f1 !f2 匹配比文件f1新卻比f2舊的文件
--type b/d/c/p/l/f 匹配文件類型(塊設備、目錄、字元設備、管道、鏈接文件、文件文件)
-size 匹配文件的大小(+50k查找超過50k的文件,而-50k則代表查找小於50k的文件)
-prune 忽略某個目錄
-exec {} \; 後面可接對搜索到結果進一步處理的命令(下面會有演示)
Linux系統中的配置文件根據FHS協議會被保存到/etc目錄中(第六章精講),如果咱們要想獲取到該目錄中所有以host開頭的文件就可以這樣做:
[root@linuxprobe ~]# find /etc -name "host*" -print
/etc/avahi/hosts
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/moles/active/moles/hostname.pp
/etc/hostname

想要在整個系統中搜索所有許可權中包括SUID許可權的文件(第五章精講),只需使用減號-4000即可:
[root@linuxprobe ~]# find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/su
/usr/bin/umount
/usr/bin/passwd
/usr/sbin/userhelper
/usr/sbin/usernetctl
參考:http://www.linuxprobe.com/chapter-02.html

熱點內容
聊天軟體編程 發布:2024-09-17 03:00:07 瀏覽:725
linuxoracle安裝路徑 發布:2024-09-17 01:57:29 瀏覽:688
兩個安卓手機照片怎麼同步 發布:2024-09-17 01:51:53 瀏覽:207
cf編譯後沒有黑框跳出來 發布:2024-09-17 01:46:54 瀏覽:249
安卓怎麼禁用應用讀取列表 發布:2024-09-17 01:46:45 瀏覽:524
win10設密碼在哪裡 發布:2024-09-17 01:33:32 瀏覽:662
情逢敵手迅雷下載ftp 發布:2024-09-17 01:32:35 瀏覽:337
安卓如何讓軟體按照步驟自動運行 發布:2024-09-17 01:28:27 瀏覽:197
Z包解壓命令 發布:2024-09-17 01:27:51 瀏覽:221
吉林ipfs存儲伺服器雲主機 發布:2024-09-17 01:27:38 瀏覽:685