第三章Linux文件管理和IO重定向(2)-目錄操作、元數據軟硬鏈接

命令:tree mkdir rmdir  ln

1、查看目錄樹結構-tree

  • -a 顯示所有文件和目錄。
  • -d 顯示目錄名稱而非內容。
  • -L指定顯示的級層項目
[root@localhost litao]# tree /litao/
/litao/
├── logs
├── test
│   └── test1
│   └── test2
└── test1

5 directories, 0 files
[root@localhost litao]# tree -L 1 /litao/
/litao/
├── logs
├── test
└── test1

3 directories, 0 files
[root@localhost litao]# tree -L 2 /litao/
/litao/
├── logs
├── test
│   └── test1
└── test1

4 directories, 0 files
[root@localhost litao]# tree -a /litao/
/litao/
├── logs
├── test
│   └── test1
│   └── test2
└── test1

5 directories, 0 files

2、創建文件夾

  • -p 確保目錄名稱存在,不存在的就建一個。
  • -v 顯示創建過程
[root@localhost litao]# mkdir log/logs
mkdir: cannot create directory ‘log/logs’: No such file or directory
[root@localhost litao]# mkdir -p log/logs

章節內容二:文件元數據及節點表結構

image

image

inode有上圖中的左邊區域組成,數據塊由右邊區域構成。不同的文件大小,通過多層級的間接指針協同完成。

直接塊指針有12個,一個塊大小爲4KB,所以直接指針可以保存48KB的文件

間接塊指針:每個指針佔用4個字節,一個塊是4KB,所以可以將一個塊拆分成1024個指針,那麼它的存儲數據1024*4KB=4MB

雙重間接塊指針:同理可得它可以存儲的數據爲1024*4MB=4GB

三級指針可以儲存文件數據大小爲1024*4GB=4TB

當我們讀寫文件時底層的工作原理是什麼?

image

訪問一個文件的時候,先進入目錄,目錄中有相應的目錄項,目錄項中有對應的文件名和inode號,通過裏面的指針指向相應的數據塊,這樣就訪問到文件的內容了。目錄這種“特殊的文件”,可以簡單地理解爲是一張表,這張表裏面存放了屬於該目錄的文件的文件名,以及所匹配的inode編號,它本身的數據也放在數據區中;讀寫一個文件時就這樣來回的從inode和數據區之間切換。可以把文件比作一本書,inode相當於書的目錄,數據區相當於書的內容,讀書時得先查目錄,這本書呢又放在讀書館的書架上,書架可以理解爲是目錄,看書前先查書架子的索引。

image

image

本例子說明,創建硬鏈接inode數不變,鏈接數增加1 文件夾不支持硬鏈接

[root@localhost litao]# echo "hello word" > helloword [root@localhost litao]# ls -li helloword 134 -rw-r--r--. 1 root root 11 Dec 24 10:58 helloword //inode134 鏈接數 1 [root@localhost litao]# ln helloword hellowordlink [root@localhost litao]# ls -li helloword 134 –rw-r--r--. 2 root root 11 Dec 24 10:58 helloword //inode134 鏈接數 2


[root@localhost litao]# ln hello test
ln: hello: hard link not allowed for directory

(ln: hello:目錄不允許硬鏈接)

[root@localhost litao]# ln helloword /boot/hello ln: failed to create hard link '/boot/hello' => 'helloword': Invalid cross-device link
(ln: failed to create hard link '/boot/hello' => 'helloword':無效的跨設備鏈接)

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章