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

linux文件link

發布時間: 2022-09-05 00:05:54

『壹』 linux怎麼將一個文件夾鏈接到另一個文件夾上

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

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

ln -s 源文件 目標文件

-s 是 symbolic的意思。

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

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

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

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

(1)linux文件link擴展閱讀:

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的路徑。

『貳』 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。
總之,建立軟鏈接就是建立了一個新文件。當訪問鏈接文件時,系統就會發現他是個鏈接文件,它讀取鏈接文件找到真正要訪問的文件。
當然軟鏈接也有硬鏈接沒有的缺點,因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統就找不到了,而硬鏈接就沒有這個缺陷,你想怎麼移就怎麼移;還有它要系統分配額外的空間用於建立新的索引節點和保存原文件的路徑。

『叄』 LINUX 中 的 mount 和 link 分別是什麼作用呀誰能給詳細解釋解釋區別呀

使用上兩者沒有區別,都是掛載掛載linux系統外的文件,mmount為掛入ms-dos文件系統,為mtools工具指令。
mount命令
使用許可權
:
系統管理者或/etc/fstab中允許的使用者
使用方式
:
mount
[-hv]
mount
-a
[-ffnrsvw]
[-t
vfstype]
mount
[-fnrsvw]
[-o
options
[,...]]
device
|
dir
mount
[-fnrsvw]
[-t
vfstype]
[-o
options]
device
dir
說明
:
將某個檔案的內容解讀成檔案系統,然後將其掛在目錄的某個位置之上。當這個命令執行成功後,直到我們使用
umnount
將這個檔案系統移除為止,這個命令之下的所有檔案將暫時無法被調用。
這個命令可以被用來掛上任何的檔案系統,你甚至可以用
-o
loop
選項將某個一般的檔案當成硬碟機分割掛上系統。這個功能對於
ramdisk,romdisk
或是
iso
9660
的影像檔之解讀非常實用。
參數
-v
顯示程序版本
-h
顯示輔助訊息
-v
顯示較訊息,通常和
-f
用來除錯。
-a

/etc/fstab
中定義的所有檔案系統掛上。
-f
這個命令通常和
-a
一起使用,它會為每一個
mount
的動作產生一個行程負責執行。在系統需要掛上大量
nfs
檔案系統時可以加快掛上的動作。
-f
通常用在除錯的用途。它會使
mount
並不執行實際掛上的動作,而是模擬整個掛上的過程。通常會和
-v
一起使用。
-n
一般而言,mount
在掛上後會在
/etc/mtab
中寫入一筆資料。但在系統中沒有可寫入檔案系統存在的情況下可以用這個選項取消這個動作。
-s-r
等於
-o
ro
-w
等於
-o
rw
-l
將含有特定標簽的硬碟分割掛上。
-u
將檔案分割序號為
的檔案系統掛下。-l

-u
必須在/proc/partition
這種檔案存在時才有意義。
-t
指定檔案系統的型態,通常不必指定。mount
會自動選擇正確的型態。
-o
async
打開非同步模式,所有的檔案讀寫動作都會用非同步模式執行。
-o
sync
在同步模式下執行。
-o
atime
-o
noatime

atime
打開時,系統會在每次讀取檔案時更新檔案的『上一次調用時間』。當我們使用
flash
檔案系統時可能會選項把這個選項關閉以減少寫入的次數。
-o
auto
-o
noauto
打開/關閉自動掛上模式。
-o
defaults
使用預設的選項
rw,
suid,
dev,
exec,
auto,
nouser,
and
async.
-o
dev
-o
nodev-o
exec
-o
noexec
允許執行檔被執行。
-o
suid
-o
nosuid
允許執行檔在
root
許可權下執行。
-o
user
-o
nouser
使用者可以執行
mount/umount
的動作。
-o
remount
將一個已經掛下的檔案系統重新用不同的方式掛上。例如原先是唯讀的系統,現在用可讀寫的模式重新掛上。
-o
ro
用唯讀模式掛上。
-o
rw
用可讀寫模式掛上。
-o
loop=
使用
loop
模式用來將一個檔案當成硬碟分割掛上系統。
範例

/dev/hda1
掛在
/mnt
之下。
#mount
/dev/hda1
/mnt

/dev/hda1
用唯讀模式掛在
/mnt
之下。
#mount
-o
ro
/dev/hda1
/mnt

/tmp/image.iso
這個光碟的
image
檔使用
loop
模式掛在
/mnt/cdrom之下。用這種方法可以將一般網路上可以找到的
linux


iso
檔在不燒錄成光碟的情況下檢視其內容。
#mount
-o
loop
/tmp/image.iso
/mnt/cdrom
mmount命令
說明:
掛入ms-dos文件系統。
語法:
mmount
[驅動器代號][mount參數]
補充說明:
mmount為mtools工具指令,可根據[mount參數]中的設置,將磁碟內容掛入到linux目錄中。
參數:
[mount參數]的用法請參考mount指令。

『肆』 什麼是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

『伍』 linux如何復制移動文件

linux如何復制文件夾和移動文件夾

linux下文件的復制、移動與刪除命令為:cp,mv,rm

一、文件復制命令cp

命令格式:cp [-adfilprsu] 源文件(source) 目標文件(destination)

cp [option] source1 source2 source3 ... directory

參數說明:

-a:是指archive的意思,也說是指復制所有的目錄

-d:若源文件為連接文件(link file),則復制連接文件屬性而非文件本身

-f:強制(force),若有重復或其它疑問時,不會詢問用戶,而強制復制

-i:若目標文件(destination)已存在,在覆蓋時會先詢問是否真的操作

-l:建立硬連接(hard link)的連接文件,而非復制文件本身

-p:與文件的屬性一起復制,而非使用默認屬性

-r:遞歸復制,用於目錄的復制操作

-s:復製成符號連接文件(symbolic link),即「快捷方式」文件

-u:若目標文件比源文件舊,更新目標文件

如將/test1目錄下的file1復制到/test3目錄,並將文件名改為file2,可輸入以下命令:

cp /test1/file1 /test3/file2

二、文件移動命令mv

命令格式:mv [-fiv] source destination

參數說明:

-f:force,強制直接移動而不詢問

-i:若目標文件(destination)已經存在,就會詢問是否覆蓋

-u:若目標文件已經存在,且源文件比較新,才會更新

如將/test1目錄下的file1復制到/test3 目錄,並將文件名改為file2,可輸入以下命令:

mv /test1/file1 /test3/file2

三、文件刪除命令rm

命令格式:rm [fir] 文件或目錄

參數說明:

-f:強制刪除

-i:交互模式,在刪除前詢問用戶是否操作

-r:遞歸刪除,常用在目錄的刪除

如刪除/test目錄下的file1文件,可以輸入以下命令:

rm -i /test/file1

復制:

CP命令

格式: CP [選項]  源文件或目錄  目的文件或目錄

選項說明:-b 同名,備分原來的文件

        -f 強制覆蓋同名文件

        -r  按遞歸方式保留原目錄結構復制文件

cp -Rf /home/user1/* /root/temp/

將 /home/user1目錄下的所有東西拷到/root/temp/下而不拷貝user1目錄本身。

即格式為:cp -Rf 原路徑/ 目的路徑/

移動:

mv ./WorkReport/web.xml ./WorkReport/WEB-INF/註:移動/WorkReport/web.xml文件到/WorkReport/WEB-INF/mv /data/new/data/old/註:移動/data/new到/data/old/文件夾下

注意點:移動文件夾的話就不要再加 / 了

如果是移動文件夾下的所有文件的話就可以文件夾後面跟上 /*

mv /data/new/* /data/old/

『陸』 linux ln 連接命令怎麼用

1、首先有一個目錄dir, 執行ln -s dir dir_link 創建目錄的軟鏈接。

『柒』 Linux裡面怎麼查看link文件的全路徑

傳給函數的路徑是/root/file,如果這是函數的第一個參數,那麼函數中可以用 $1 獲齲 得到文件名file1和file2後,echo "$1/file1" 就輸出/root/file/file1,echo "$1/file2" 輸出/root/file/file2。

『捌』 linux下,如何自動link目錄

#!/bin/bash

#new一開始就是個symboliclink,不能是空目錄
#這個腳本在「同文件夾」下執行,可以放在後台執行

#符號鏈接名:new
target=new

whiletrue
do
#每秒鍾檢查一次
sleep1
#如果符號鏈接不存在,就什麼都不做
[!-h$target]&&continue
#找一個最新目錄
newdir=$(find.-typed-newer$target|tail-1)
#如果找到,更新符號鏈接
[-d"$newdir"]&&ln-nsf$newdir$target
done

『玖』 LINUX 怎麼刪除 文件link

每一個文件,都可以通過一個struct stat的結構體來獲得文件信息,其中一個成員st_nlink代表文件的鏈接數。
當通過shell的touch命令或者在程序中open一個帶有O_CREAT的不存在的文件時,文件的鏈接數為1。

通常open一個已存在的文件不會影響文件的鏈接數。open的作用只是使調用進程與文件之間建立一種訪問關系,即open之後返回fd,調用進程可以通過fd來read 、write 、 ftruncate等等一系列對文件的操作。
close()就是消除這種調用進程與文件之間的訪問關系。自然,不會影響文件的鏈接數。在調用close時,內核會檢查打開該文件的進程數,如果此數為0,進一步檢查文件的鏈接數,如果這個數也為0,那麼就刪除文件內容。

link函數創建一個新目錄項,並且增加一個鏈接數。
unlink函數刪除目錄項,並且減少一個鏈接數。如果鏈接數達到0並且沒有任何進程打開該文件,該文件內容才被真正刪除。如果在unlilnk之前沒有close,那麼依舊可以訪問文件內容。

綜上所訴,真正影響鏈接數的操作是link、unlink以及open的創建。
刪除文件內容的真正含義是文件的鏈接數為0,而這個操作的本質完成者是unlink。close能夠實施刪除文件內容的操作,必定是因為在close之前有一個unlink操作。

舉個例子簡單說明:通過shell touch test.txt
1、stat("test.txt",&buf);
printf("1.link=%d\n",buf.st_nlink);//未打開文件之前測試鏈接數

2、fd=open("test.txt",O_RDONLY);//打開已存在文件test.txt
stat("test.txt",&buf);
printf("2.link=%d\n",buf.st_nlink);//測試鏈接數

3、close(fd);//關閉文件test.txt
stat("test.txt",&buf);
printf("3.link=%d\n",buf.st_nlink);//測試鏈接數

4、link("test.txt","test2.txt");//創建硬鏈接test2.txt
stat("test.txt",&buf);
printf("4.link=%d\n",buf.st_nlink);//測試鏈接數

5、unlink("test2.txt");//刪除test2.txt
stat("test.txt",&buf);
printf("5.link=%d\n",buf.st_nlink);//測試鏈接數

6、重復步驟2 //重新打開test.txt

7、unlink("test.txt");//刪除test.txt
fstat(fd,&buf);
printf("7.link=%d\n",buf.st_nlink);//測試鏈接數

8、close(fd);//此步驟可以不顯示寫出,因為進程結束時,打開的文件自動被關閉。

順次執行以上8個步驟,結果如下:
1.link=1
2.link=1 //open不影響鏈接數
3.link=1 //close不影響鏈接數
4.link=2 //link之後鏈接數加1
5.link=1 //unlink後鏈接數減1
2.link=1 //重新打開 鏈接數不變
7.link=0 //unlink之後再減1,此處我們改用fstat函數而非stat,因為unlilnk已經刪除文件名,所以不可以通過 文件名訪問,但是fd仍然是打開著的,文件內容還沒有被真正刪除,依舊可以使用fd獲得文件信息。
執行步驟8,文件內容被刪除。。。。

『拾』 link的linux中link函數

頭文件
#include <unistd.h>
函數原型
int link (const char * oldpath,const char * newpath);
說明
link()以參數newpath指定的名稱來建立一個新的連接(硬連接)到參數oldpath所指定的已存在文件。如果參數newpath指定的名稱為一已存在的文件則不會建立連接。函數在執行成功時則返回0,失敗時則返回-1,錯誤原因存於errno。 link()所建立的硬連接無法跨越不同文件系統,如果需要請改用symlink()。
errno錯誤代碼:
EXDEV 參數oldpath與newpath不是建立在同一文件系統。
EPERM 參數oldpath與newpath所指的文件系統不支持硬連接
EROFS 文件存在於只讀文件系統內
EFAULT 參數oldpath或newpath 指針超出可存取內存空間。
ENAMETOLLONG 參數oldpath或newpath太長
ENOMEM 核心內存不足
EEXIST 參數newpath所指的文件名已存在。
EMLINK 參數oldpath所指的文件已達最大連接數目。
ELOOP 參數pathname有過多符號連接問題
ENOSPC 文件系統的剩餘空間不足。
EIO I/O 存取錯誤。
範例
/* 建立/etc/passwd 的硬連接為pass */ #include<unistd.h>main(){link(/etc/passwd,pass);}

熱點內容
暴風影音緩存在哪裡 發布:2025-05-12 12:42:03 瀏覽:534
access資料庫exe 發布:2025-05-12 12:39:04 瀏覽:622
五開的配置是什麼 發布:2025-05-12 12:36:37 瀏覽:358
加密ovpn 發布:2025-05-12 12:01:55 瀏覽:44
python練手項目 發布:2025-05-12 11:14:07 瀏覽:122
壓縮聽算音頻 發布:2025-05-12 10:58:12 瀏覽:801
資料庫系統報告 發布:2025-05-12 10:43:17 瀏覽:603
日產高配有哪些配置 發布:2025-05-12 10:32:16 瀏覽:475
大眾朗逸哪個配置值得入手 發布:2025-05-12 10:31:20 瀏覽:505
壓縮包的後綴 發布:2025-05-12 10:20:35 瀏覽:944