Linux之ln命令詳解
阿新 • • 發佈:2020-08-18
NAME
ln - make links between files
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
軟連線和硬連結:
軟連線檔案的一種快捷方式,有自己的inode檔案節點,並在磁碟上有一小片空間存放路徑名;硬連結則是一個檔案有多個別名,系統並不為它重新分配inode。軟連線可以對目錄進行連線;硬連線不行。
引數:
- -f: --force remove existing destination files
- -n: --no-dereference treat LINK_NAME as a normal file if it is a symbolic link to a drectory
- -s: --symbloic make symbolic links instead of hard links
- -v: --verbose print name of each linked file
*******************************************************************************************************
建立到檔案的軟連結:
-
ln -sv TARGET LINK_NAME
-
ln -svf TARGET LINK_NAME
覆蓋原有軟連線
*******************************************************************************************************
建立到目錄的軟連結:
-
ln -sv TARGET LINK_NAME
LINK_NAME不存在時,會直接建立軟連線
-
LINK_NAME存在,且為一個目錄時,會在目錄下生成連線檔案,且連線檔案的目標為命令中給出的路徑,如果是相對路徑,則發生錯誤,故使用相對路徑時,謹慎
- -f 選項是不能覆蓋非連線檔案型別的,下圖中使用-f選項,但是mm目錄並未被覆蓋
- 使用rm刪除連線檔案的時候,如果連線檔案指向目錄,則加倍小心帶/和不帶/區別
帶/刪除的是連線檔案指向的目錄
不帶/才是刪除連線檔案本身
上圖中b為指向目錄的一個連線檔案
-
如果要覆蓋指向目錄的連線檔案則必須使用-n選項,否則ln會在連線檔案指向的目錄下建立新的連線檔案,這通常不是我們所期望的,-n選項標明把連線檔案作為普通檔案對待,進行覆蓋
上圖示例中,在xx這個連線檔案所指向的目錄下,建立了以$(basename TARGET)為新名字的連線檔案
-
覆蓋指向目錄的連線檔案使用-n引數