首先什麼是鏈結?
鏈結操作實際上是給系統中已有的某個檔案指定另外乙個可用於訪問它的名稱。對於這個新的檔名,我們可以為之指定不同的
訪問許可權
,以控制對資訊的共享和安全性的問題。 如果鏈結指向目錄,使用者就可以利用該鏈結直接進入被鏈結的目錄而不用打一大堆的路徑名。而且,即使我們刪除這個鏈結,也不會破壞原來的目錄。
硬鏈結
硬鏈結只能引用同一檔案系統中的檔案。它引用的是檔案在檔案系統中的物理索引(也稱為 inode)。當您移動或刪除原始檔案時,硬鏈結不會被破壞,因為它所引用的是檔案的物理資料而不是檔案在檔案結構中的位置。硬鏈結的檔案不需要使用者有訪問原始檔案的許可權,也不會顯示原始檔案的位置,這樣有助於檔案的安全。如果您刪除的檔案有相應的硬鏈結,那麼這個檔案依然會保留,直到所有對它的引用都被刪除。
軟鏈結(符號鏈結)
軟連線,其實就是新建立乙個檔案,這個檔案就是專門用來指向別的檔案的(那就和windows 下的快捷方式的那個檔案有很接近的意味)。軟連線產生的是乙個新的檔案,但這個檔案的作用就是專門指向某個檔案的,刪了這個軟連線檔案,那就等於不需要這個連線,和原來的存在的實體原檔案沒有任何關係,但刪除原來的檔案,則相應的軟連線不可用(cat那個軟鏈結檔案,則提示「沒有該檔案或目錄「)。
硬鏈結與軟鏈結的區別;
硬連線是不會建立inode的,他只是在檔案原來的inode link count域再增加1而已,也因此硬鏈結是不可以跨越檔案系統的。相反都是軟連線會重新建立乙個inode,當然inode的結構跟其他的不一樣,他只是乙個指明原始檔的字串資訊。一旦刪除原始檔,那麼軟連線將變得毫無意義。而硬鏈結刪除的時候,系統呼叫會檢查inode link count的數值,如果他大於等於1,那麼inode不會被**。因此檔案的內容不會被刪除。
硬鏈結實際上是為檔案建乙個別名,鏈結檔案和原檔案實際上是同乙個檔案。可以通過ls -i來檢視一下,這兩個檔案的inode號是同乙個,說明它們是同乙個檔案;而軟鏈結建立的是乙個指向,即鏈結檔案內的內容是指向原檔案的指標,它們是兩個檔案。
軟鏈結可以跨檔案系統,硬鏈結不可以;軟鏈結可以對乙個不存在的檔名(filename)進行鏈結(當然此時如果你vi這個軟鏈結檔案,linux會自動新建乙個檔名為filename的檔案),硬鏈結不可以(其檔案必須存在,inode必須存在);軟鏈結可以對目錄進行連線,硬鏈結不可以。兩種鏈結都可以通過命令 ln 來建立。ln 預設建立的是硬鏈結。使用 -s 開關可以建立軟鏈結。
總結:
( 1 )軟連線可以跨檔案系統,硬連線不可以
( 2 )硬連線不管有多少個,都指向的是同乙個 i 節點,會把結點連線數增加,只要結點的連線數不是 0 ,檔案就一直存在不管你刪除的是原始檔還是連線的檔案。只要有乙個存在檔案就存在。 當你修改原始檔或者連線檔案任何乙個的時候,其他的檔案都會做同步的修改。軟鏈結不直接使用 i 節點號作為檔案指標 , 而是使用檔案路徑名作為指標。所以刪除連線檔案對原始檔無影響,但是刪除原始檔,連線檔案就會找不到要指向的檔案。軟鏈結有自己的 i 節點 , 並在磁碟上有一小片空間存放路徑名。
( 3 )軟連線可以對乙個不存在的檔名進行連線 。
( 4 )軟連線可以對目錄進行連線。
演算法的時間複雜度取決於:
待處理資料的狀態
問題的規模
前端筆試知識點總結(3)
css中position的四個屬性值得分析 fixed,relative,absolute,static 1 position static 無定位 該屬性值是所有元素定位的預設情況,在一般情況不用宣告,但有時候遇到繼承的情況,可以採用static取消繼承,即還原定位的預設值 2 position ...
京東筆試 搜狗筆試 總結
1 右值引用和轉移 選擇 2 x 和 x 選擇 首先,是單目運算子,優先順序是高於 的,所以是先執行 第二,x 返回值是 x 1 是表示式而非變數 左值不能是表示式,所以x 這種是錯誤的。3 select epoll poll?選擇 4 程序 執行緒 超執行緒 簡答 5 資料結構各種查詢的試用情景 ...
筆試合集3
1 大數模擬,題目記不太清了。var str readline str sgsf var sum 0n var flag 1 if str 0 console.log str for var i str.length 1 i 0 i else if str i a str i z else 1705...