命令: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
章節內容二:文件元數據及節點表結構
inode有上圖中的左邊區域組成,數據塊由右邊區域構成。不同的文件大小,通過多層級的間接指針協同完成。
直接塊指針有12個,一個塊大小爲4KB,所以直接指針可以保存48KB的文件
間接塊指針:每個指針佔用4個字節,一個塊是4KB,所以可以將一個塊拆分成1024個指針,那麼它的存儲數據1024*4KB=4MB
雙重間接塊指針:同理可得它可以存儲的數據爲1024*4MB=4GB
三級指針可以儲存文件數據大小爲1024*4GB=4TB
當我們讀寫文件時底層的工作原理是什麼?
訪問一個文件的時候,先進入目錄,目錄中有相應的目錄項,目錄項中有對應的文件名和inode號,通過裏面的指針指向相應的數據塊,這樣就訪問到文件的內容了。目錄這種“特殊的文件”,可以簡單地理解爲是一張表,這張表裏面存放了屬於該目錄的文件的文件名,以及所匹配的inode編號,它本身的數據也放在數據區中;讀寫一個文件時就這樣來回的從inode和數據區之間切換。可以把文件比作一本書,inode相當於書的目錄,數據區相當於書的內容,讀書時得先查目錄,這本書呢又放在讀書館的書架上,書架可以理解爲是目錄,看書前先查書架子的索引。
本例子說明,創建硬鏈接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':無效的跨設備鏈接)