1. 程式人生 > >Linux學習筆記--ln命令(連結命令)

Linux學習筆記--ln命令(連結命令)

ln:英文名link,連結的意思。

Linux 系統中有軟連結和硬連結兩種特殊的“檔案”。

硬連結特徵:

1) 硬連結檔案跟原始檔擁有相同的i(inode)節點和儲存block塊,
   它們可以看作是同一個檔案。
2) 可通過i節點進行識別(i節點相同)。
3) 連結檔案和原始檔必須在相同的分割槽,不能跨分割槽。
3) 不能針對目錄建立硬連結。
   (這個雖然Linux ln命令幫助說明裡說可以用"ln -d"建立目錄的硬連結,
   但是本人實測不可行,本人在網上搜索出來了一段詳細解釋說明,
   具體說明請看文章最下邊的"特別說明"。)
4) 修改任意一個檔案,另外一個檔案的內容都會改變。
5
) 當原始檔被刪除時,硬連結檔案還可以正常使用。

軟連結特徵:

1) 軟連結檔案作用跟windows系統的快捷方式作用相同。
2) 軟連結擁有自己的i節點和儲存block塊,
   但是此資料塊中儲存的資訊是原始檔的i節點和檔名資訊,
   並不會儲存實際的檔案資料內容。
3) 用"ll"命令檢視時,軟連結檔案前面都是"lrwxrwxrwx",
   其中第一位的字母"l"即表示此檔案為軟連結檔案,
   軟連結檔案的真實許可權取決於原始檔的許可權。
4) 修改任意一個檔案,另外一個檔案的內容都會改變。
5) 當原始檔被刪除時,軟連結檔案將不能使用。

1. 命令格式:

ln [選項] 原始檔或目錄 目標檔案或目錄

2. 常用選項:

"ln -b" 如果目標目錄中已經有同名的檔案,那麼在覆蓋之前先進行備份
"ln -f" 如果目標目錄中已經有同名的檔案,無需提示,直接覆蓋
"ln -i" 人機互動,如果目標目錄中已經有同名的檔案,則提示是否進行覆蓋
"ln -n" 把軟連結視為一般目錄(說明:範例中我會詳細解釋)
"ln -s" 建立軟連結
"ln -v" 詳細顯示操作進行的步驟。(v為verbose的意思)

3. 常用範例:

1) 建立一個硬連結檔案。

這裡寫圖片描述

2) 建立一個軟連結檔案。

這裡寫圖片描述

3) 建立一個硬連結檔案,如果目標目錄中已經有同名檔案,覆蓋前先進行備份。

這裡寫圖片描述

4) 給目錄建立一個軟連結。

這裡寫圖片描述

5) "ln -n" 命令例項說明。

這裡寫圖片描述

6) 建立軟連結失敗例項說明

這裡寫圖片描述

特別說明:

1) 建立軟連結時,如果軟連結檔案跟原始檔不在同一個目錄,那麼原始檔地址必須為絕對路徑,否則創建出來的軟連結無法使用。

2) 不能針對檔案建立硬連結。

"linux系統中的硬連線有兩個限制:不能跨越檔案系統和不允許普通使用者對目錄作硬連線。至於第一個限制,很好理解,而第二個就不那麼好理解了。 我們對任何一個目錄用ls -l 命令都可以看到其連線數至少是2,這也說明了系統中是存在硬連線的,而且命令ln -d 也可以讓超級使用者對目錄作硬連線,這些都說明了系統限制對目錄進行硬連線只是一個硬性規定,並不是邏輯上不允許或技術上的不可行。那麼作業系統為什麼要進行限制呢?如果引入了對目錄的硬連線就有可能在目錄中引入迴圈,那麼在目錄遍歷的時候系統就會陷入無限迴圈當中。也許您會說,符號連線不也可以引入迴圈嗎,那麼為什麼不限制目錄的符號連線呢?原因就在於在linux系統中,每個檔案(目錄也是檔案)都對應著一個inode結構,其中inode資料結構中包含了檔案型別(目錄,普通檔案,符號連線檔案等等)的資訊,也就是說作業系統在遍歷目錄時可以判斷出符號連線,既然可以判斷出符號連線當然就可以採取一些措施來防範進入過大的迴圈了,系統在連續遇到8個符號連線後就停止遍歷,這就是為什麼對目錄符號連線不會進入死迴圈的原因了。但是對於硬連線,由於作業系統中採用的資料結構和演算法限制,目前是不能防範這種死迴圈的。" (此解答是在網上找到的,因為無法找到文章的出處以及原作者資訊,故無法標識原作者資訊,如有知情者,可速與我聯絡,我會及時加入作者資訊。謝謝)

相關推薦

Linux學習筆記--ln命令(連結命令)

ln:英文名link,連結的意思。 Linux 系統中有軟連結和硬連結兩種特殊的“檔案”。 硬連結特徵: 1) 硬連結檔案跟原始檔擁有相同的i(inode)節點和儲存block塊, 它們

linux學習筆記之常用基本命令(二)

3. 使用者管理命令 useradd 新增新使用者 語法:useradd 使用者名稱 passwd 設定使用者密碼 語法: passwd 使用者名稱 id 判斷使用者是否存在 語法: id 使用者名稱 su 切換使用者 語法: su 使用者名稱

linux學習筆記之常用基本命令(一)

1.幫助命令 man獲取幫助資訊 語法:man[命令或配置檔案] help獲得shell內建命令的幫助資訊 語法:help 命令 例: help cd 常用快捷鍵 ctrl +c: 停止程序 ctrl +l: 清屏 ctrl +q: 退出 tab鍵 :補全命令(常用t

Linux學習筆記三(常用命令

11 、 壓縮檔案命令:gzip 命令名稱:gzip  命令英文原意:GNU zip  命令所在路徑:/bin/gzip  執行許可權:所有使用者  語法:gzip [檔案]  -d 解壓縮 同gunzip 功能描述:壓縮檔案 不保留原檔案,只剩壓縮包 壓縮後文件格式:.gz 12、解壓縮.gz的壓縮檔案命令

linux學習筆記(系統管理命令

1 檢視當前日曆 cal cal -y 顯示當前年的所有月份,顯示當前年的日曆 2 顯示或設定時間 date 設定時間需要管理員許可權,時間格式為 date [MMDDhhmm[[CC]YY][.ss]]  其中的中括號表示可選,字母意思依次是月,日,時,分,年前兩位,年後

Linux學習筆記--壓縮和解壓縮命令

.zip格式壓縮: zip 壓縮檔名 原始檔 #壓縮檔案 zip -r 壓縮檔名 源目錄 #壓縮目錄 .zip格式解壓縮: unzip 壓縮檔案

Linux學習筆記一:基本命令

外部命令 特殊效果 練習題 顯示 sta EDA init 5 help 有用 1---bc計算器--- 2 ibase=2 以二進制輸入,輸出10進制 3 obase=2 輸出二進制 4 enable --查看內部命令 5 #第一天的命令 6

Linux學習筆記:SQLyog連結linux虛擬機器上的mysql資料庫

可能出現的問題: can't connect to MYSQL server on "localhost" (10060) 原因1: Linux 主機上安裝的防火牆沒有開啟 3306 埠 解決: 編輯檔案 /etc/sysconfig/iptables vi /etc/sysconfig/iptables

Linux學習筆記(四)------常見的dos命令建立目錄,連結

pwd 當前路徑 mkdir建立目錄(make) rmdir 刪除目錄(remove) 遞迴刪除 rmdir –p a/b/c cp (copy)複製一個目錄到另一個目錄 cp –r a b(把a 檔案複製到b檔案) mv (move)移動,重新命名命令

Linux學習筆記4_基本文件操作命令復習2

linuxfind命令(5星級)find /data -type -f -name "test.txt" //找到某類型某名字文件find /data -type -f -name "test.txt" -exec rm

Linux學習筆記6_基本命令復習1(alias unalias sourse)

linuxaliasunaliasalias 查看當前命令的宏定義狀態unalias [command] 取消某命令的宏定義(內存操作,非修改宏定義源文件,重啟失效)若想使用已重命名命令的原始命令,在命令前加“\”反斜杠符號即可,或使用命令的絕對地址調用。例:cp命令,在目的地址有同名文件時,會提示是否覆蓋粘

Linux學習筆記10_基本命令復習6(mv,history,LANG)

linux------------------------------------------------------------------------2017.08.11mv //移動命令,也可重命名文件夾 //移動文件夾時,若目的路徑存在,則移動至目的路徑內部

Linux學習筆記——目錄、文件管理命令及常用選項

linux 目錄文件管理 linux目錄文件管理命令 目錄管理命令:ls 、 cd 、 pwd 、mkdir、 rmdir 、tree文件管理命令:touch、 stat 、file、 rm 、cp、 mv 、nan目錄管理#ls 列出列表格式ls [OPTION]... [FILE]...

Linux學習筆記——bash命令及shell變量簡介

linux bash 簡介、bash 、shellbash 及其特性 shell 外殼 GUI :Gnome KDE xface CLI :shell csh ksh bash 程序,進程進程:每個進程看來,當前主機上只存在內核和當前進程 進程是程序的副本,進程是程序執行實例 用戶的工作

Linux學習筆記之四————Linux常用命令 ( 待補充)

-h http “.” 現實 人性化 快捷 我們 包括 無法 一、Linux命令——文件、磁盤管理 1.文件管理 <1>查看文件信息:ls ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似於DOS下的dir命令。 Linu

Linux學習筆記之三————Linux命令概述

上下 eight ive 幫助 option pos misc tor tro 一、引言 很多人可能在電視或電影中看到過類似的場景,黑客面對一個黑色的屏幕,上面飄著密密麻麻的字符,梆梆一頓敲,就完成了竊取資料的任務。 Linux 剛出世時沒有什麽圖形界面,所有的操

Linux學習筆記(七)環境變量PATH、cp命令、mv命令、文檔查看cat/more/less/h

查看 linux學習 文件覆蓋 echo txt 但是 學習 https ls命令 一、環境變量PATH對於環境變量,百度解釋為https://baike.baidu.com/item/%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F/1730949

Linux學習筆記(十四)df命令、du命令、磁盤分區

xtend du -sh image c2c 浪費 code 服務 分享 bdc 一、df #查看文件系統的使用情況第一列文件系統中tmpfs結尾的都是臨時的文件系統,文件單位默認為kb df -h 自動適應文件大小的單位free可以查看swap的使用情況 df -i 查看

Linux學習筆記 - 獲取root權限命令

root linux終端 blog isp inux su - root su - spa pre 1:Redhat系統或者Fedora或者CentOs的Linux發行版,那麽在Linux終端輸入命令回車:  su - root  這樣就可以切換到root權限了2:Ubun

Linux學習筆記(二十三)shell介紹、history命令歷史、命令補全和別名、通配符、

alias shell 歷史命令 通配符 一、shell介紹 shell是一個命令解釋器,提供用戶和機器之間的交互 支持特定語法,比如邏輯判斷、循環 每個用戶都可以有自己特定的shell CentOS7默認shell為bash(Bourne Agin Shell) 還有zsh、ksh等、二、