1樓:李剛
對於軟鏈、硬鏈的內容整理,是為後續 pnpm 的內容做準備。
示例:cd /Users/ligang/Documents/github/practice/links/sources
# 在測試目錄下建立相應的測試檔案
touch test.js &&
echo
"console.log('links')" > test.js
檢視檔案資訊(inode)
ls -li test.js
8643193659 -rw-r--r-- 1 ligang staff 21
830 17:08 test.js
inode 為「索引節點」,儲存檔案的元資訊。其是 UNIX 作業系統中的一種資料結構,包含了與檔案系統中各個檔案相關的一些重要資訊。
建立硬鏈
ln ./sources/test.js test-hard-links.js
檢視檔案資訊(inode)
ls -li test-hard-links.js
8643193659 -rw-r--r-- 2 ligang staff 21
830 17:08 test-hard-links.js
其同原檔案的 inode 值相同,指向了物理硬碟的乙個區塊。
向 test-hard-links.js 追加內容
echo "console.log('test hard links')" >> test-hard-links.js
cat sources/test.js
console.log('links')
console.log('test hard links')
原檔案 test.js 同步更新了內容。
rm sources/test.js
cat test-hard-links.js
console.log('links')
console.log('test hard links')
通過硬鏈的檔案不受影響。
echo "console.log('test hard links again')" >> test-hard-links.js
ll sources/test.js
ls: sources/test.js: No such file or directory
建立軟鏈
ln -s sources/test.js test-soft-links.js
檢視檔案資訊(inode)
ls -li test-soft-links.js
8643223807 lrwxr-xr-x 1 ligang staff 15 8 31 13:27 test-soft-links.js -> sources/test.
js其同原檔案的 inode 值不同。
向 test-soft-links.js 追加內容
echo "console.log('soft hard links')" >> test-soft-links.js
cat sources/test.js
console.log('links')
console.log('soft hard links')
原檔案 test.js 同步更新了內容。
rm sources/test.js
cat test-soft-links.js
cat: test-soft-links.js: No such file or directory
報錯!沒有相應的檔案或目錄。
echo "console.log('test soft links again')" >> test-soft-links.js
ll sources/test.js
-rw-r--r-- 1 ligang staff 37B 8 31 13:35 sources/test.js
cat sources/test.js
cat test-soft-links.js
console.log('test soft links again')
只會向 test-hard-links.js 寫入,原檔案重新被建立,且 test-soft-links.js 和 sources/test.
js 內容都變成了最新修改內容(同 sources/test.js 保持一致)。
硬鏈為檔案內容建立別名;軟鏈為檔名建立別名。
建立硬鏈結實際上是為原檔案在儲存器中的資源再新建乙個入口,所以硬鏈結和原檔案指向的其實是儲存器中的同一處資源(同乙個 inode);而軟鏈結建立的是乙個指向,即鏈結檔案內的內容是指向原檔案的指標,它們是兩個檔案。
ln sources/test.js test-hard-links.js
ll -li sources/test.js
8643224333 -rw-r--r-- 2 ligang staff 37B 8 31 13:36 sources/test.js
根據上述闡述,鏈結計數為2,如何檢視呢?
方式一:尋找相同的 inode
find . -inum 8643224333
./test-hard-links.js
./sources/test.js
方式二:尋找相同的 filename
find . -samefile ./sources/test.js
./test-hard-links.js
./sources/test.js
上述 . 為當前目錄,可以通過此擴大或縮小查詢範圍。如果需要全域性查詢,可以設定為 /。
linux為什麼不能硬鏈結目錄?
悟覓 儘管支援目錄硬鏈結不是乙個容易的事情,然而NTFS能夠正確處理檔案與資料夾硬鏈結,管理員用好這項功能可大幅減少重複檔案,讓不同的應用在各自的工作目錄下,而不用維護複雜的跨目錄管理。 hitshouge 徐三響同學的例子一可以說是完美解決這個問題了。但我引申出了乙個問題。很多人都提到一點.和.都...
是否有辦法讓CPU和插槽的鏈結使用觸點
可行性很小 主機板的插槽並不平整,想獲得穩定的連線需要極大的壓力 並且你可以發現,Intel的處理器除了觸點外還有大量無處安放的電容器。 李明 CPU的封裝有多種方式 你提到的針腳封裝是PGA,針腳做在主機板上CPU上是觸點是LGA,直接焊在主機板上是BGA。不存在物理特性而必須使用某種封裝方式。實...
如何評價遊戲王新的鏈結怪獸和link召喚?
我現在對第六部的OCG環境很絕望。無論出什麼新系列,康一定要下滿,永遠有用的壞兔麗G,然後額外怪滿鏈結怪,如果要放其他的都叫做情懷。我是乙個融合玩家,英雄,月光,影依,在這個環境下都無法動彈。超量所有黑卡也不再被玩家投入,因為超量怪基本等於終端,融合怪也是。靈擺等於自斷雙臂一樣。唯有值得一戰的同調,...