1. 程式人生 > 實用技巧 >Linux之ln命令詳解

Linux之ln命令詳解

  


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。軟連線可以對目錄進行連線;硬連線不行。

引數:

  1. -f: --force remove existing destination files
  2. -n: --no-dereference treat LINK_NAME as a normal file if it is a symbolic link to a drectory
  3. -s: --symbloic make symbolic links instead of hard links
  4. -v: --verbose print name of each linked file

*******************************************************************************************************

建立到檔案的軟連結:

  1. ln -sv TARGET LINK_NAME

  2. ln -svf TARGET LINK_NAME

    覆蓋原有軟連線

*******************************************************************************************************

建立到目錄的軟連結:

  1. ln -sv TARGET LINK_NAME

    LINK_NAME不存在時,會直接建立軟連線

  2. LINK_NAME存在,且為一個目錄時,會在目錄下生成連線檔案,且連線檔案的目標為命令中給出的路徑,如果是相對路徑,則發生錯誤,故使用相對路徑時,謹慎




  3. -f 選項是不能覆蓋非連線檔案型別的,下圖中使用-f選項,但是mm目錄並未被覆蓋

  4. 使用rm刪除連線檔案的時候,如果連線檔案指向目錄,則加倍小心帶/和不帶/區別
    帶/刪除的是連線檔案指向的目錄
    不帶/才是刪除連線檔案本身

    上圖中b為指向目錄的一個連線檔案

  5. 如果要覆蓋指向目錄的連線檔案則必須使用-n選項,否則ln會在連線檔案指向的目錄下建立新的連線檔案,這通常不是我們所期望的,-n選項標明把連線檔案作為普通檔案對待,進行覆蓋

    上圖示例中,在xx這個連線檔案所指向的目錄下,建立了以$(basename TARGET)為新名字的連線檔案

  6. 覆蓋指向目錄的連線檔案使用-n引數