linux修改目录block信息,linux下文件操作inode,block的变化
在“淺談linux性能調優之三:分區格式化之前的考慮”
http://my.oschina.net/sharelinux/blog/143522??? 一文中我說了inode與block的關系,現在說一下linux下文件操作底層inode與block發生了什么變化:
1.創建好文件系統并掛載:inode,block信息如下:
Filesystem ? ? ? ? ? ?Inodes ? IUsed ? IFree IUse% Mounted on
/dev/sdb5 ? ? ? ? ? ? ?28112 ? ? ?11 ? 28101 ? ?1% /test5
/dev/sdb6 ? ? ? ? ? ? ?28112 ? ? ?11 ? 28101 ? ?1% /test6
Filesystem ? ? ? ? ? 1K-blocks ? ? ?Used Available Use% Mounted on
/dev/sdb5 ? ? ? ? ? ? ? 108837 ? ? ?5663 ? ? 97555 ? 6% /test5
/dev/sdb6 ? ? ? ? ? ? ? 108865 ? ? ?5663 ? ? 97581 ? 6% /test6
2.在/test5下創建一個testfile文件:后信息如下:
Filesystem ? ? ? ? ? ?Inodes ? IUsed ? IFree IUse% Mounted on
/dev/sdb5 ? ? ? ? ? ? ?28112 ? ? ?12 ? 28100 ? ?1% /test5
/dev/sdb6 ? ? ? ? ? ? ?28112 ? ? ?11 ? 28101 ? ?1% /test6
Filesystem ? ? ? ? ? 1K-blocks ? ? ?Used Available Use% Mounted on
/dev/sdb5 ? ? ? ? ? ? ? 108837 ? ? ?5664 ? ? 97554 ? 6% /test5
/dev/sdb6 ? ? ? ? ? ? ? 108865 ? ? ?5663 ? ? 97581 ? 6% /test6
結論:創建一個文件時,占用一個inode,至少一個block
3.從/test5復制文件testfile到/test6/testfile.cp
Filesystem ? ? ? ? ? ?Inodes ? IUsed ? IFree IUse% Mounted on
/dev/sdb5 ? ? ? ? ? ? ?28112 ? ? ?13 ? 28099 ? ?1% /test5
/dev/sdb6 ? ? ? ? ? ? ?28112 ? ? ?12 ? 28100 ? ?1% /test6
Filesystem ? ? ? ? ? 1K-blocks ? ? ?Used Available Use% Mounted on
/dev/sdb5 ? ? ? ? ? ? ? 108837 ? ? ?5664 ? ? 97554 ? 6% /test5
/dev/sdb6 ? ? ? ? ? ? ? 108865 ? ? ?5664 ? ? 97580 ? 6% /test6
結論:復制應該等于建立的過程
4.移動/test5/testfile到/test6/
Filesystem ? ? ? ? ? ?Inodes ? IUsed ? IFree IUse% Mounted on
/dev/sdb5 ? ? ? ? ? ? ?28112 ? ? ?12 ? 28100 ? ?1% /test5
/dev/sdb6 ? ? ? ? ? ? ?28112 ? ? ?13 ? 28099 ? ?1% /test6
Filesystem ? ? ? ? ? 1K-blocks ? ? ?Used Available Use% Mounted on
/dev/sdb5 ? ? ? ? ? ? ? 108837 ? ? ?5664 ? ? 97554 ? 6% /test5
/dev/sdb6 ? ? ? ? ? ? ? 108865 ? ? ?5664 ? ? 97580 ? 6% /test6
結論:/test5 inode減少一個, /test6 inode增加一個,/test5 block應該不變,/test6應該減少一個 可能因為文件大小
5.在/test6下刪除testfile
Filesystem ? ? ? ? ? ?Inodes ? IUsed ? IFree IUse% Mounted on
/dev/sdb5 ? ? ? ? ? ? ?28112 ? ? ?12 ? 28100 ? ?1% /test5
/dev/sdb6 ? ? ? ? ? ? ?28112 ? ? ?12 ? 28100 ? ?1% /test6
Filesystem ? ? ? ? ? 1K-blocks ? ? ?Used Available Use% Mounted on
/dev/sdb5 ? ? ? ? ? ? ? 108837 ? ? ?5664 ? ? 97554 ? 6% /test5
/dev/sdb6 ? ? ? ? ? ? ? 108865 ? ? ?5664 ? ? 97580 ? 6% /test6
結論:刪除文件時,只刪除inode節點,不銷毀block塊中的數據,同時這也是數據恢復的基礎
硬鏈接
---------------------------------
剛才說過,當系統要讀取某個文件時,它會先讀inode table,然后根據inode的信息到數據區域將數據取出備用。硬鏈接就是再建立一個inode鏈接到文件放置的Block塊。也就是說,進行硬鏈接時,實際上您的文件內容不會改變,只是原來的inode與后來添加的inode均可指定到該文件存放的地點,因此,讀取兩個inode的結果都是讀取同一個文件的內容。不過,這樣一來就有個問題,因為inode會鏈接到Block塊,而"目錄"本身僅消耗inode,這樣,硬鏈接就不能鏈接目錄。所以,硬鏈接有兩個最大的限制:
(1) 不能跨文件系統,因為不同的文件系統有不同的inode table;
(2) 不能鏈接目錄。
軟鏈接(符號鏈接)
---------------------------------
相對于硬鏈接,符號鏈接比較好理解,基本上,它是再建立一個獨立文件,而這個文件會讓數據讀取操作指向它鏈接的那個文件。由于只是利用文件作為指向的動作,所以,當源文件被刪除,符號鏈接的文件就打不開了,屏幕會顯式"無法開啟某文件"。
因此,硬鏈接比較安全,因為即某一個inode被刪除,只要還有一個inode,該文件就能被找到。
總結
以上是生活随笔為你收集整理的linux修改目录block信息,linux下文件操作inode,block的变化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 点刷怎么使用
- 下一篇: linux alsa 录音程序,Linu