《LINUX教學(xué):Linux磁盤分區(qū)及文件系統(tǒng)管理詳解》要點(diǎn):
本文介紹了LINUX教學(xué):Linux磁盤分區(qū)及文件系統(tǒng)管理詳解,希望對您有用。如果有疑問,可以聯(lián)系我們。
磁盤,提供持久的數(shù)據(jù)存儲,它不像我們的內(nèi)存,如果突然斷電了,在內(nèi)存中的數(shù)據(jù)一般都會被丟掉了,內(nèi)存中的數(shù)據(jù)在保存的時(shí)候,會被寫到硬盤里面,磁盤也是一種I/O設(shè)備.
我們都知道磁盤分區(qū)完成之后,還要進(jìn)行格式化,這個(gè)格式化操作就是指定文件系統(tǒng),文件系統(tǒng)的本質(zhì)就是對一個(gè)存儲設(shè)備上的元數(shù)據(jù)和數(shù)據(jù)就行組織,最終把數(shù)據(jù)有組織的放在可以長期存儲的設(shè)備中.
本文主要是介紹可Linux中的磁盤分區(qū)和文件系統(tǒng)管理.
IDE:一種較老的接口技術(shù),價(jià)格低廉,兼容性強(qiáng),傳輸速度可達(dá)133MB/s;
SCSI:主要應(yīng)用于中、高端服務(wù)器中,支持熱拔插,價(jià)格較高,其中UltraSCSI可達(dá)320MB/S,UltraSCSI640可達(dá)640MB/S;
SCSI接口
SATA:主要用于PC上,串口硬盤,可達(dá)6gbps;
SAS:是一種串行鏈接的SCSI接口技術(shù),向下兼容SATA,速度快;
USB:一種便攜的存儲設(shè)備,USB3.0理論最大傳輸速度可達(dá)500MB/s,現(xiàn)在最新的USB3.1Gen 2最高可達(dá)10Gbps.
?
并口和串口的區(qū)別:
并口:同一線纜可以接多塊設(shè)備,IDE和SCSI為并口硬盤;
串口:同一線纜只可以接一個(gè)設(shè)備,SATA、SAS和USB為串口,抗干擾能力強(qiáng).
我們都知道作為linux的哲學(xué)思想之一,一切皆文件,在linux中使用設(shè)備文件來標(biāo)識不同的硬盤,也就是設(shè)備的拜訪接口,在Linux中I/O設(shè)備分為2倍,字符設(shè)備和塊設(shè)備,基于不同的功能進(jìn)行分類的:
(1)字符設(shè)備:線性拜訪的,數(shù)據(jù)的交換單位是“字符”,提供的連續(xù)的數(shù)據(jù)流,不支持隨機(jī)存取,舉例來說,鍵盤、調(diào)制解調(diào)器都是典型的字符設(shè)備;
(2)塊設(shè)備:可以提供隨機(jī)拜訪,數(shù)據(jù)交換的單位是“塊”,硬盤、CD-ROM驅(qū)動器都是典型的塊設(shè)備,應(yīng)用可以尋址磁盤上的任何位置,并讀取數(shù)據(jù).
?
在Linux系統(tǒng)中,c代表字符設(shè)備,b為塊設(shè)備(紅色部分標(biāo)識).
后面黃色標(biāo)注的兩行為設(shè)備號:
主設(shè)備號:左列,區(qū)分設(shè)備類型,用于標(biāo)明設(shè)備所需要的驅(qū)動程序;
次設(shè)備號:右列,區(qū)分同種類型下的不同的設(shè)備.
?
?mknod命令
?mknod可以創(chuàng)建設(shè)備文件,格式如下:
mknod [OPTION]... NAME TYPE [MAJOR MINOR] 選項(xiàng): -m MODE:創(chuàng)建后的設(shè)備文件的拜訪權(quán)限
mknod /dev/ttyUSB32 c 188 32
?linux的設(shè)備文件都是放在/dev目錄下的,應(yīng)用程序可以通過這些設(shè)備文件完成都設(shè)備的讀寫等操作.之前寫過設(shè)備都有主次設(shè)備號,linux有約定俗成的編號,如硬盤的主設(shè)備號在CentOS6和7中為8:
?根據(jù)接口類型的不同,設(shè)備的文件名命令也有一些規(guī)定,在centos如下:
?
在引用設(shè)備的時(shí)候可以通過以下三種方式:
1.設(shè)備文件名,也就是/dev目錄下的文件名;
2.系統(tǒng)卷標(biāo)(volume label);
3.UUID,唯一表示碼,能夠唯一的表示一個(gè)設(shè)備.
?
一塊磁盤是可以被分割成多個(gè)分區(qū),從Windows的角度來看,就是C,D,E分區(qū).磁盤分區(qū)的方式有MBR和GPT.
?
?MBR(Master Boot Record)
總共大小為512字節(jié),存在于磁盤的第0個(gè)扇區(qū).
446bytes:引導(dǎo)啟動操作系統(tǒng)的程序;
64bytes:分區(qū)表,每16bytes標(biāo)識一個(gè)分區(qū),一共能夠有4個(gè)主分區(qū),但是如果想劃分更多的區(qū),可以指定擴(kuò)展分區(qū),比如分為3個(gè)主分區(qū),一個(gè)擴(kuò)展分區(qū),而擴(kuò)展分區(qū)可以劃分為若干個(gè)邏輯分區(qū).
?
?綜上所述,如果使用MBR分區(qū),就必須至少有一個(gè)擴(kuò)展分區(qū),然后將擴(kuò)展分區(qū)分成邏輯分區(qū),邏輯分區(qū)的序號從5開始.
?
?GPT(GUID Partition Table):
MBR是另一種分區(qū)方式:
1):GPT分區(qū)表中最多可以支持128個(gè)主分區(qū)
2):突破了MBR單個(gè)分區(qū)只能是2.2T的限制,最大支持1EB容量
在GPT中主分區(qū)、擴(kuò)展分區(qū)和模糊分區(qū)的概念就淡化了很多.
?fidisk
?1.查看磁盤分區(qū)
fdisk -l device...:查看指定磁盤設(shè)備的分區(qū)情況
?
?2.管理分區(qū)
?fdisk為MBR方式的分區(qū)工具,提供了交互式的接口來管理分區(qū)所有的操作,都是在內(nèi)存中完成的,當(dāng)使用w保存的時(shí)候,才真正去創(chuàng)建或修改分區(qū).
fdisk device
?我們來試試,可以看到使用fdisk加設(shè)備名,就進(jìn)入到了一個(gè)交互式的界面,輸入m即可獲得贊助:
[root@localhost ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2). 更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤. 使用寫入命令前請三思. Device does not contain a recognized partition table 使用磁盤標(biāo)識符 0x3918c6ef 創(chuàng)建新的 DOS 磁盤標(biāo)簽. 命令(輸入 m 獲取贊助):m 命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition <=======刪除已有分區(qū) g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types <======列出已知的分區(qū)類型 m print this menu <=======查看贊助信息 n add a new partition <=======創(chuàng)建新的分區(qū) o create a new empty DOS partition table p print the partition table <======顯示現(xiàn)有分區(qū)信息 q quit without saving changes <======不保存退出 s create a new empty Sun disklabel t change a partition's system id <========修改分區(qū)類型 u change display/entry units v verify the partition table w write table to disk and exit <========保存并退出 x extra functionality (experts only)
?舉個(gè)例子:現(xiàn)在新加了一塊120G的磁盤,分為3個(gè)主分區(qū),每個(gè)區(qū)20G,余下的空間都給擴(kuò)展分區(qū)并添加一個(gè)20G的邏輯分區(qū).
[root@localhost ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2). 更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤. 使用寫入命令前請三思. Device does not contain a recognized partition table 使用磁盤標(biāo)識符 0x3918c6ef 創(chuàng)建新的 DOS 磁盤標(biāo)簽. 命令(輸入 m 獲取贊助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分區(qū)號 (1-4,默認(rèn) 1):1 起始 扇區(qū) (2048-251658239,默認(rèn)為 2048): 將使用默認(rèn)值 2048 Last 扇區(qū), +扇區(qū) or +size{K,M,G} (2048-251658239,默認(rèn)為 251658239):+20G 分區(qū) 1 已設(shè)置為 Linux 類型,大小設(shè)為 20 GiB 命令(輸入 m 獲取贊助):n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p 分區(qū)號 (2-4,默認(rèn) 2):2 起始 扇區(qū) (41945088-251658239,默認(rèn)為 41945088): 將使用默認(rèn)值 41945088 Last 扇區(qū), +扇區(qū) or +size{K,M,G} (41945088-251658239,默認(rèn)為 251658239):+20G 分區(qū) 2 已設(shè)置為 Linux 類型,大小設(shè)為 20 GiB 命令(輸入 m 獲取贊助):n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p 分區(qū)號 (3,4,默認(rèn) 3): 起始 扇區(qū) (83888128-251658239,默認(rèn)為 83888128): 將使用默認(rèn)值 83888128 Last 扇區(qū), +扇區(qū) or +size{K,M,G} (83888128-251658239,默認(rèn)為 251658239):+20G 分區(qū) 3 已設(shè)置為 Linux 類型,大小設(shè)為 20 GiB 命令(輸入 m 獲取贊助):n Partition type: p primary (3 primary, 0 extended, 1 free) e extended Select (default e): e 已選擇分區(qū) 4 起始 扇區(qū) (125831168-251658239,默認(rèn)為 125831168): 將使用默認(rèn)值 125831168 Last 扇區(qū), +扇區(qū) or +size{K,M,G} (125831168-251658239,默認(rèn)為 251658239): 將使用默認(rèn)值 251658239 分區(qū) 4 已設(shè)置為 Extended 類型,大小設(shè)為 60 GiB 命令(輸入 m 獲取贊助):n All primary partitions are in use 添加邏輯分區(qū) 5 起始 扇區(qū) (125833216-251658239,默認(rèn)為 125833216): 將使用默認(rèn)值 125833216 Last 扇區(qū), +扇區(qū) or +size{K,M,G} (125833216-251658239,默認(rèn)為 251658239):+20G 分區(qū) 5 已設(shè)置為 Linux 類型,大小設(shè)為 20 GiB
?查看分區(qū)情況:
[root@localhost ~]# fdisk -l /dev/sdb 磁盤 /dev/sdb:128.8 GB, 128849018880 字節(jié),251658240 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié) 磁盤標(biāo)簽類型:dos 磁盤標(biāo)識符:0x3918c6ef 設(shè)備 Boot Start End Blocks Id System /dev/sdb1 2048 41945087 20971520 83 Linux /dev/sdb2 41945088 83888127 20971520 83 Linux /dev/sdb3 83888128 125831167 20971520 83 Linux /dev/sdb4 125831168 251658239 62913536 5 Extended /dev/sdb5 125833216 167776255 20971520 83 Linux?
?parted
?這個(gè)工具既可以做MBR的分區(qū),又可以做GPT的分區(qū),主要時(shí)候用來做GPT的.
?1.查看分區(qū)情況:
parted -l device (親測:竟然也可以使用fdisk -l指定設(shè)備查看)
?2.管理分區(qū)
?parted也提供了交互式的接口來管理分區(qū),輸入help查看贊助,我們來看一下:
[root@localhost ~]# parted GNU Parted 3.1 使用 /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) help align-check TYPE N check partition N for TYPE(min|opt) alignment help [COMMAND] print general help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkpart PART-TYPE [FS-TYPE] START END make a partition name NUMBER NAME name partition NUMBER as NAME print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition quit exit program rescue START END rescue a lost partition near START and END rm NUMBER delete partition NUMBER select DEVICE choose the device to edit disk_set FLAG STATE change the FLAG on selected device disk_toggle [FLAG] toggle the state of FLAG on selected device set NUMBER FLAG STATE change the FLAG on partition NUMBER toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER unit UNIT set the default unit to UNIT version display the version number and copyright information of GNU Parted (parted)
(parted) select /dev/sdc 使用 /dev/sdc
?2)選擇分區(qū)格式為GPT
mklabel gpt
?下面是命令的使用贊助
(parted) help mklabel mklabel,mktable LABEL-TYPE create a new disklabel (partition table) “標(biāo)簽類型”是以下任意一項(xiàng):aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop
?3)使用mkpart分區(qū)時(shí),不需要指定分區(qū)的數(shù)字標(biāo)識(在MBR中可能要指定1-4或更多),可以直接給它加上名稱,這說明在GPT分區(qū)的情況下,主分區(qū)擴(kuò)展分區(qū)已經(jīng)變得不那么重要了,分區(qū)的起始點(diǎn)最好從1開始
(parted) mkpart 分區(qū)名稱? []? my_data1 文件系統(tǒng)類型? [ext2]? #文件系統(tǒng)先不用管,后面會講到 起始點(diǎn)? 1 # 結(jié)束點(diǎn)? 2048 #默認(rèn)為M
?4)這樣一個(gè)分區(qū)就創(chuàng)建好了,可以使用print查看
(parted) print Model: ATA VMware Virtual I (scsi) Disk /dev/sdc: 53.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 標(biāo)志 1 1049kB 2048MB 2047MB my_data1
?5)讓我們再來新建一個(gè)分區(qū),新建分區(qū)的起始點(diǎn)就是上一個(gè)分區(qū)的結(jié)束點(diǎn)
(parted) mkpart 分區(qū)名稱? []? my_data2 文件系統(tǒng)類型? [ext2]? 起始點(diǎn)? 2048 結(jié)束點(diǎn)? 4096 (parted) (parted) print Model: ATA VMware Virtual I (scsi) Disk /dev/sdc: 53.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 標(biāo)志 1 1049kB 2048MB 2047MB my_data1 2 2048MB 4096MB 2048MB my_data2
?6)作為linux的哲學(xué)思想之一,避免與用戶交互,我們也可以使用以下方式來創(chuàng)建新的分區(qū)
(parted) mkpart my_data3 4096 6144 (parted) (parted) print Model: ATA VMware Virtual I (scsi) Disk /dev/sdc: 53.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 標(biāo)志 1 1049kB 2048MB 2047MB my_data1 2 2048MB 4096MB 2048MB my_data2 3 4096MB 6144MB 2048MB my_data3
?7)parted使用quit退出即生效
(parted) quit 信息: You may need to update /etc/fstab. [root@localhost ~]#
[root@localhost ~]# cat /proc/partitions major minor #blocks name 8 16 125829120 sdb 8 17 20971520 sdb1 8 18 20971520 sdb2 8 19 20971520 sdb3 8 20 1 sdb4 8 21 20971520 sdb5 8 32 52428800 sdc 8 33 1998848 sdc1 8 34 1999872 sdc2 8 35 1999872 sdc3 8 0 20971520 sda 8 1 512000 sda1 8 2 20458496 sda2 11 0 4277248 sr0 253 0 16261120 dm-0 253 1 2097152 dm-1 253 2 2097152 dm-2
?如果沒有識別可以使用以下兩種方式通知內(nèi)核強(qiáng)制重讀磁盤分區(qū)表:
partx -a device
kpartx -af device
?如果命令一次不能成功,請多試幾次.
?
磁盤分區(qū)完成之后,還要進(jìn)行格式化,這個(gè)格式化操作就是指定文件系統(tǒng),文件系統(tǒng)的本質(zhì)就是對一個(gè)存儲設(shè)備上的元數(shù)據(jù)和數(shù)據(jù)就行組織,最終把數(shù)據(jù)有組織的放在可以長期存儲的設(shè)備中.
傳統(tǒng)的說法是一個(gè)分區(qū)只能格式化成一種文件系統(tǒng),但是由于新技術(shù)的產(chǎn)生,LVM或者RAID,一個(gè)分區(qū)可以被格式化成多個(gè)文件系統(tǒng),也可以將多個(gè)分區(qū)格式格式化成一個(gè)文件系統(tǒng).
數(shù)據(jù)一般分為實(shí)際的數(shù)據(jù)(實(shí)際的數(shù)據(jù),一首mp3)和元數(shù)據(jù)(文件的屬性和權(quán)限等),它們在文件系統(tǒng)中存放的位置是不同的.實(shí)際的數(shù)據(jù)是存儲在data block中,元數(shù)據(jù)則是存儲在innode中,除此之外還有一個(gè)superblock.
superblock:記錄了文件系統(tǒng)的整體信息,包含innode/block的總量、使用量和剩余量和文件系統(tǒng)的格式等
inode:記錄文件的屬性,一個(gè)文件占一個(gè)inode,同時(shí)也記錄了文件所在的block號
block:實(shí)際記錄文件的內(nèi)容,若文件大小大于block,則占用多個(gè)block塊
?
?下面就來講一下inode和block之間的關(guān)系:
?1.索引式文件系統(tǒng)
?若一個(gè)文件的inode號是4,此中存放了其block的位置:2,7,13,15,那么操作系統(tǒng)讀取數(shù)據(jù)的時(shí)候,就可以根據(jù)inode中block的位置一次性將數(shù)據(jù)讀取出來.
?
2.鏈?zhǔn)轿募到y(tǒng)
?和索引式文件系統(tǒng)不同的是蓮式讀取文件方式,常見于U盤的FAT格式,這種文件系統(tǒng)沒有inode的存在,每個(gè)block的號碼都記錄在前一個(gè)block中.
?
?3.磁盤重組
?磁盤重組的目的就是將寫在磁盤中離散的block重新組織一下,將同一個(gè)文件的block塊集合在一起,以便于數(shù)據(jù)的讀取.導(dǎo)致數(shù)據(jù)離散的原因,一般是由于文件系統(tǒng)使用的時(shí)間過長,非常多次的數(shù)據(jù)的操作,比如刪除、增加和修改的次數(shù)很多.
Linux的文件系統(tǒng): ext2(無日志功能), ext3, ext4, xfs, reiserfs, btrfs
光盤:iso9660
網(wǎng)絡(luò)文件系統(tǒng):nfs, cifs
集群文件系統(tǒng):gfs2, ocfs2
內(nèi)核級分布式文件系統(tǒng):ceph
windows的文件系統(tǒng):vfat, ntfs
偽文件系統(tǒng):proc, sysfs, tmpfs, hugepagefs
Unix的文件系統(tǒng):UFS, FFS, JFS
交換文件系統(tǒng):swap
用戶空間的分布式文件系統(tǒng):mogilefs, moosefs, glusterfs
?
EXT2是一種比較舊的文件系統(tǒng)了,從Centos7開始文件系統(tǒng)已經(jīng)開始使用了XFS,但是這種使用inode為基礎(chǔ)的文件系統(tǒng)還是要了解的,畢竟后面也出現(xiàn)了它的升級版本,EXT3和EXT4.
前面說過inode記錄是文件的權(quán)限和屬性,inode和block在文件系統(tǒng)創(chuàng)建好之后就已經(jīng)分好了的,但是我們想一想,如果一個(gè)硬盤有500G甚至更大,inode和block都放在一起就會顯得不是很合理,數(shù)量過大,不容易去管理.所有在EXT2文件系統(tǒng)中在格式化的時(shí)候?qū)⑽募到y(tǒng)分為多個(gè)區(qū)塊,稱為block group,每個(gè)block group都有自己的block/inode/superblock.
下面我們就來看看一個(gè)block group的大致樣子:
?
在文件系統(tǒng)的最前面有一個(gè)Boot Sector,可以安裝開機(jī)管理程序,這樣我們就能將不同的開機(jī)管理程序安裝在個(gè)別的文件系統(tǒng)之前,而不用覆蓋整個(gè)磁盤的MBR,這樣就能做出多重開機(jī)的環(huán)境.
?
?block group的內(nèi)容:
date block:用來放置文件內(nèi)容的地方,大小一般為1k、2k、4k,block的大小在格式化之后就不能再改變了,每個(gè)block就能存放一個(gè)文件的數(shù)據(jù).
inode table:記錄了文件的權(quán)限,文件的大小,時(shí)間戳,flag或者該文件的真正指向
superblock:block和inode的數(shù)量信息,文件系統(tǒng)的時(shí)間戳,一個(gè)有效比特,該值為0代表已經(jīng)被掛載,該值為1則沒有被掛載
Filesystem Description:文件系統(tǒng)描述說明,描述了每個(gè)block group的開始和結(jié)束的block號碼,已經(jīng)說明了superblock\bitmap\inodemap\data block分別在哪個(gè)一個(gè)block號碼之間.
block bitmap:block位圖,記錄block的使用情況,標(biāo)明了哪些block是空的,我們在刪除的文件的時(shí)候,會發(fā)現(xiàn)很快,刪除文件操作其實(shí)就是改變了該文件占用的bitmap的位置為空,block的文件暫時(shí)沒有刪除,這就是我們的數(shù)據(jù)可以被找回的原因
inode bitmap:inode位圖,與block bitmap的功能類似,記錄的是使用與未使用的inode號碼.
?
文件系統(tǒng)會給目錄分配至少一個(gè)block,inode記錄了權(quán)限和屬性以及分配到的block號,而block則記錄了這個(gè)目錄下的文件名與該文件名所占用的inode號碼.
下面描述讀取一個(gè)目錄下文件的流程:
舉例:root讀取/tmp/test.txt文件的過程:
1./的inode:通過掛載點(diǎn)信息找到inode號碼為128的根目錄的inode,取得權(quán)限和block號
2./的block:根據(jù)block的號碼,查看block的內(nèi)容,找到目錄tmp/的文件名和其inode號
3.tmp/的inode:根據(jù)inode,獲取權(quán)限信息和block號
4.tmp/的block:查看對應(yīng)的block的內(nèi)容,找到test.txt的inode號
5.test.txt的inode號:根據(jù)inode,獲取權(quán)限信息和對應(yīng)的block號
6.test.txt的block:獲取文件的實(shí)際內(nèi)容
?
數(shù)據(jù)存放區(qū)域:inode table,data block
metadata:中介數(shù)據(jù),變化次數(shù)頻繁,superblock,block bitmap和inode bitmap
新增一個(gè)文件的過程:
1.根據(jù)目錄文件的inode確定用戶是否有權(quán)限
2.根據(jù)inode位圖找到?jīng)]有使用的inode號,在inode table寫入權(quán)限等信息
3.根據(jù)block位圖找到?jīng)]有使用的block號,在block中寫入實(shí)際數(shù)據(jù),更新到inode中去
4.更新inode位圖和block位圖,并更新到superblock中
一般一個(gè)完整的新建文件的過程就如上
但是但是出現(xiàn)特殊情況,比如斷電,可能會出現(xiàn)數(shù)據(jù)僅僅寫到了inode table和block中卻沒有更新inode位圖和block位圖,也沒有更新superblock,那就導(dǎo)致中介數(shù)據(jù)和真正存儲數(shù)據(jù)的內(nèi)容不一致.
在EXT2中,要使用e2fsck這個(gè)工具,要遍歷整個(gè)文件系統(tǒng),!!不敢想象啊!
所以就出現(xiàn)了日志式文件系統(tǒng):
在文件系統(tǒng)中又單獨(dú)劃分一個(gè)區(qū)塊,記錄了寫入或修改文件時(shí)的信息
1.當(dāng)要寫入一個(gè)文件的時(shí)候,就在日志區(qū)塊記錄一下某個(gè)文件要寫入了
2.寫入文件的數(shù)據(jù),更新metadata數(shù)據(jù)
3.完成數(shù)據(jù)和metadate的更新,在日志記錄區(qū)塊當(dāng)中完成對該文件的記錄
這樣,當(dāng)發(fā)生意外的時(shí)候,我們可以直接檢查日志記錄區(qū)塊,查看哪些文件有問題,然后做出校驗(yàn)即可
EXT2不支持日志式文件系統(tǒng),EXT3和EXT4都支持日志式文件系統(tǒng),并向下兼容EXT2
?
VFS(Virtual Filesystem Switch),linux系統(tǒng)通過VFS的核心功能去讀取文件系統(tǒng).
比如/是使用的是/dev/sda1,其文件系統(tǒng)是ext2格式的,而/home使用的/dev/sda2,其格式為xfs,如果我們現(xiàn)在要讀取/home/Frank,直接cat就行了,我們有指定要用什么文件系統(tǒng)的模塊去讀取嗎?沒有,這個(gè)就是VFS的功能,VFS可以管理所有的filesystem,示意圖如下:
?
更多詳情見請繼續(xù)閱讀下一頁的精彩內(nèi)容:
_baidu_page_break_tag_?硬鏈接和符號鏈接都是都是鏈接文件,用"l"表示
?
(紅色為符號鏈接標(biāo)識l,黃色為引用計(jì)數(shù))
?
ln 源文件 鏈接文件
?我們來看一下如下:
[root@localhost ~]# ls -l /etc/ | grep "fstab" -rw-r--r--. 1 root root 541 7月 16 04:37 fstab為其創(chuàng)建一個(gè)鏈接
?為其創(chuàng)建一個(gè)鏈接
[root@localhost ~]# ln /etc/fstab /tmp/fstab.link
?引用計(jì)數(shù)變?yōu)榱?
[root@localhost ~]# ls -l /etc/ | grep "fstab" -rw-r--r--. 2 root root 541 7月 16 04:37 fstab
?再去看一下/tmp下的鏈接文件
[root@localhost ~]# ls -l /tmp/ | grep "link" -rw-r--r--. 2 root root 541 7月 16 04:37 fstab.link
?cat一下內(nèi)容,因?yàn)橹赶虻氖莍node,所有即使你刪除了源文件,通過符號鏈接還是讀取文件內(nèi)容:
[root@localhost ~]# cat /tmp/fstab.link # # /etc/fstab # Created by anaconda on Sun Jul 16 04:37:14 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/cl-root / xfs defaults 0 0 UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot xfs defaults 0 0 /dev/mapper/cl-var /var xfs defaults 0 0 /dev/mapper/cl-swap swap swap defaults 0 0
?
符號鏈接
指向一個(gè)文件路徑的另一個(gè)文件路徑
特性:符號鏈接與文件兩個(gè)各自是獨(dú)立的文件,各有自己的inode,對文件創(chuàng)建符號鏈接不會增加引用計(jì)數(shù)
? ? ? ? ? 支持對目錄創(chuàng)建符號鏈接,可以跨文件系統(tǒng),刪除原文件,符號鏈接指定的路徑就不存在了,此時(shí)變成了無效鏈接:
ln -s 源文件 鏈接文件
[root@localhost ~]# touch frank.txt [root@localhost ~]# echo "hello" > ./frank.txt [root@localhost ~]# cat frank.txt hello
?創(chuàng)建符號鏈接:
[root@localhost ~]# ln -s frank.txt frank.link
?查看符號鏈接:
?
?刪除原文件后,符號填充色變黑,原文件名閃爍:
?
?寫了這么些文件系統(tǒng)的基礎(chǔ)知識,應(yīng)該可以大致理解文件系統(tǒng)是什么個(gè)東西了,下面我們就開始介紹如何管理和使用文件系統(tǒng).
mkfs.文件系統(tǒng)格式 device
文件系統(tǒng)格式:
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
?舉例:將/dev/sdb1格式化為ext4格式
[root@localhost ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系統(tǒng)標(biāo)簽= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1310720 inodes, 5242880 blocks 262144 blocks (5.00%) reserved for the super user 第一個(gè)數(shù)據(jù)塊=0 Maximum filesystem blocks=2153775104 160 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
?也可以使用:
mkfs -t 文件系統(tǒng)格式 device
?舉例:將/dev/sdb1格式化為ext3格式
[root@localhost ~]# mkfs -t ext3 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系統(tǒng)標(biāo)簽= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1310720 inodes, 5242880 blocks 262144 blocks (5.00%) reserved for the super user 第一個(gè)數(shù)據(jù)塊=0 Maximum filesystem blocks=4294967296 160 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
?mke2fs
創(chuàng)建一個(gè)ext2或ext3或ext4的文件系統(tǒng),和mkfs命令類似
mke2fs [OPTIONS] device 常用選項(xiàng): -t {ext2|ext3|ext4}:指明要?jiǎng)?chuàng)建的文件系統(tǒng)類型 -b {1024|2048|4096}:指明文件系統(tǒng)的塊大小; -L LABEL:指明系統(tǒng)卷標(biāo); -j:創(chuàng)建有日志功能的文件系統(tǒng)ext3; -i #:bytes-per-inode,指明inode與字節(jié)的比率;即每多少字節(jié)創(chuàng)建一個(gè)Indode; -N #:直接指明要給此文件系統(tǒng)創(chuàng)建的inode的數(shù)量; -m #:指定預(yù)留的空間,百分比;
?也可以使用-O選項(xiàng),指定特性,具體指定的各種feature可以使用命令"man 5 ext4"查看
mke2fs -O feature device
[root@localhost ~]# mke2fs -t ext4 -L my_data /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系統(tǒng)標(biāo)簽=my_data OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1310720 inodes, 5242880 blocks 262144 blocks (5.00%) reserved for the super user 第一個(gè)數(shù)據(jù)塊=0 Maximum filesystem blocks=2153775104 160 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 ?
[root@localhost ~]# e2label /dev/sdb1
my_data
?設(shè)定:
[root@localhost ~]# e2label /dev/sdb2 mydata2 [root@localhost ~]# [root@localhost ~]# e2label /dev/sdb2 mydata2
tune2fs [OPTIONS] DEVICE -l:查看super block的信息 修改文件系統(tǒng)的屬性: -j:修改文件系統(tǒng) -L LABEL:修改卷標(biāo) -m #:調(diào)整預(yù)留空間百分比 -O [^]FEATURE:開啟或關(guān)閉某種特性 -o [^]mout_options:開啟或關(guān)閉某種默認(rèn)掛載選項(xiàng),比如 開啟acl -o acl 或者關(guān)閉 -o ^acl
?
blkid device blkid -L LABEL:根據(jù)LABEL定位設(shè)備 blkid -U UUID:根據(jù)唯一表示號定位設(shè)備
?舉例
[root@localhost ~]# blkid /dev/sdb1 /dev/sdb1: LABEL="my_data" UUID="0557dfda-a2ab-4d75-93be-38f84c6663a1" TYPE="ext4"
因進(jìn)程意外終止或者系統(tǒng)崩潰的時(shí)候,可能會造成文件損壞,此時(shí)應(yīng)該檢查并修復(fù)文件系統(tǒng),建立離線修復(fù).
e2fsck [OPTIONS] device -y:對所有問題自動回答yes -f:即使文件系統(tǒng)處于clean狀態(tài),也要強(qiáng)制檢查,clean說明文件系統(tǒng)沒有問題,反之為dirty
fsck
-t fstype:指名文件系統(tǒng) -a:無須交互而自動修復(fù)所有的錯(cuò)誤 -r:交互式修復(fù)
?也可以使用以下格式:
[root@localhost ~]# fsck
fsck fsck.cramfs fsck.ext3 fsck.fat fsck.msdos fsck.xfs
fsck.btrfs fsck.ext2 fsck.ext4 fsck.minix fsck.vfat
[root@localhost ~]# fsck.ext2 /dev/sdb1
在CentOS7上,默認(rèn)使用的文件系統(tǒng)是xfs,centos6默認(rèn)不可以格式化分區(qū)為xfs文件系統(tǒng),可以安裝其文件系統(tǒng)驅(qū)動,在centos6安裝:
[root@localhost ~]# yum -y install xfsprogs
舉例:現(xiàn)在要把分區(qū)sdb5轉(zhuǎn)換為支持swap文件系統(tǒng)
[root@localhost ~]# fdisk /dev/sdb 歡迎使用 fdisk (util-linux 2.23.2). 更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤. 使用寫入命令前請三思. 命令(輸入 m 獲取幫助):t 分區(qū)號 (1-5,默認(rèn) 5):5 Hex 代碼(輸入 L 列出所有代碼):l 0 空 24 NEC DOS 81 Minix / 舊 Linu bf Solaris 1 FAT12 27 暗藏的 NTFS Win 82 Linux 交換 / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 暗藏的 C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux 擴(kuò)展 c7 Syrinx 5 擴(kuò)展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系統(tǒng)數(shù)據(jù) 6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 純文本 de Dell 工具 8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt 9 AIX 可啟動 4f QNX4.x 第3部分 93 Amoeba e1 DOS 訪問 a OS/2 啟動管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 擴(kuò)展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC 11 暗藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq 診斷 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 暗藏的 FAT16 <3 61 SpeedStor ab Darwin 啟動 f2 DOS 次要 16 暗藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS 17 暗藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自動 1b 暗藏的 W95 FAT3 70 DiskSecure 多啟 bb Boot Wizard 隱 fe LANstep 1c 暗藏的 W95 FAT3 75 PC/IX be Solaris 啟動 ff BBT Hex 代碼(輸入 L 列出所有代碼):82 已將分區(qū)“Linux”的類型更改為“Linux swap / Solaris” 命令(輸入 m 獲取幫助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤.
?再來查看sdb的分區(qū)情況
[root@localhost ~]# fdisk -l /dev/sdb 磁盤 /dev/sdb:128.8 GB, 128849018880 字節(jié),251658240 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié) 磁盤標(biāo)簽類型:dos 磁盤標(biāo)識符:0x3918c6ef 設(shè)備 Boot Start End Blocks Id System /dev/sdb1 2048 41945087 20971520 83 Linux /dev/sdb2 41945088 83888127 20971520 83 Linux /dev/sdb3 83888128 125831167 20971520 83 Linux /dev/sdb4 125831168 251658239 62913536 5 Extended /dev/sdb5 125833216 167776255 20971520 82 Linux swap / Solaris
~]# mkfs.vfat device
文件系統(tǒng)創(chuàng)建完畢之后,想要使用,就必須要掛載到指定的位置.
根文件系統(tǒng)之外的其他系統(tǒng)想要能夠被拜訪,就必須掛載在根文件系統(tǒng)上的某一個(gè)目錄上,而此目錄被稱為掛載點(diǎn).
掛載點(diǎn):一個(gè)文件系統(tǒng)的拜訪入口,它有以下特性:
1.目錄必須實(shí)現(xiàn)存在
2.應(yīng)該使用未被或者不會被其他進(jìn)程使用的目錄
3.掛載點(diǎn)下原有的文件會被暗藏
?mount
?掛載文件系統(tǒng)
mount [-nrw] [-t vfstype] [-o options] device dir 命令選項(xiàng): -r:readonly,只讀掛載; -w:read and write, 讀寫掛載; -n:默認(rèn)情況下,設(shè)備掛載或卸載的操作會同步更新至/etc/mtab文件中;-n用于禁止此特性; -t vfstype:指明要掛載的設(shè)備上的文件系統(tǒng)的類型;多數(shù)情況下可省略,此時(shí)mount會通過blkid來判斷要掛載的設(shè)備的文件系統(tǒng)類型; -L LABEL:掛載時(shí)以卷標(biāo)的方式指明設(shè)備; mount -L LABEL dir -U UUID:掛載時(shí)以UUID的方式指明設(shè)備; mount -U UUID dir -o options:掛載選項(xiàng) sync/async:同步/異步操作; atime/noatime:文件或目錄在被拜訪時(shí)是否更新其拜訪時(shí)間戳; diratime/nodiratime:目錄在被拜訪時(shí)是否更新其拜訪時(shí)間戳; remount:重新掛載; acl:支持使用facl功能; # mount -o acl device dir # tune2fs -o acl device ro:只讀 rw:讀寫 dev/nodev:此設(shè)備上是否允許創(chuàng)建設(shè)備文件; exec/noexec:是否允許運(yùn)行此設(shè)備上的程序文件; auto/noauto: user/nouser:是否允許普通用戶掛載此文件系統(tǒng); suid/nosuid:是否允許程序文件上的suid和sgid特殊權(quán)限生效; defaults:Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.
?舉例:將/dev/sdb1掛載到/mnt目錄下
[root@localhost ~]# mount /dev/sdb1 /mnt/ [root@localhost ~]# df -l 文件系統(tǒng) 1K-塊 已用 可用 已用% 掛載點(diǎn) /dev/mapper/cl-root 16250880 3542180 12708700 22% / devtmpfs 1000180 0 1000180 0% /dev tmpfs 1016076 84 1015992 1% /dev/shm tmpfs 1016076 9116 1006960 1% /run tmpfs 1016076 0 1016076 0% /sys/fs/cgroup /dev/sdb1 20511312 45080 19401272 1% /mnt /dev/sda1 508580 151316 357264 30% /boot /dev/mapper/cl-var 2086912 427172 1659740 21% /var tmpfs 203216 16 203200 1% /run/user/42 tmpfs 203216 0 203216 0% /run/user/0?
?三種方式:
#mount #cat /etc/mtab #cat /proc/mounts
umount device/dir #指定設(shè)備名和目錄都可以
注意:
如果掛載點(diǎn)下有文件被拜訪,我們無法卸載
可以使用以命令來查看哪些進(jìn)程占用了掛載點(diǎn):
lsof MOUNT_POINT fuser -v MOUNT_POINT
?并可以使用如下面命令,強(qiáng)制終止所有正在拜訪的某掛載點(diǎn)
fuser -km MOUNT_POINT
?交換分區(qū)的啟用和禁用
交換分區(qū)不需要掛載.
創(chuàng)建交換分區(qū):
mkswap device #將指定的分區(qū)創(chuàng)建支持swap格式的文件系統(tǒng),也可以進(jìn)入fdisk的交互模式下,使用t選項(xiàng)
swapon [OPTION] [DEVICE]
-a:定義在/etc/fstab文件中的所有swap設(shè)備;
?禁用:
swapoff device
[root@localhost mnt]# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 2097148 0 -1 /dev/sdb5 partition 20971516 0 -2
[root@localhost ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Sun Jul 16 04:37:14 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/cl-root / xfs defaults 0 0 UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot xfs defaults 0 0 /dev/mapper/cl-var /var xfs defaults 0 0 /dev/mapper/cl-swap swap swap defaults 0 0
從左到右分為6個(gè)字段:
(1)要掛載的設(shè)備,可以使用設(shè)備文件,卷標(biāo)和UUID
(2)掛載點(diǎn),swap類型的設(shè)備文件掛載點(diǎn)為swap
(3)文件系統(tǒng)類型
(4)掛載選項(xiàng):defaults為默認(rèn)掛載選項(xiàng),多個(gè)掛載選項(xiàng)之間用逗號隔開
(5)轉(zhuǎn)儲頻率:0:從不備份,1:每天備份,2:每隔一天備份
(6)自檢次序:0:不自檢,1:首先自檢,只能是根文件系統(tǒng),2???次級自檢,以此類推
可以使用mount -a:自動掛載在此文件中所支持的自動掛載設(shè)備
舉個(gè)例子:將系統(tǒng)光盤自動掛載在/mnt目錄下,使其開機(jī)自動掛載:
[root@localhost ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Sun Jul 16 04:37:14 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/cl-root / xfs defaults 0 0 UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot xfs defaults 0 0 /dev/mapper/cl-var /var xfs defaults 0 0 /dev/mapper/cl-swap swap swap defaults 0 0 /dev/sr0 /mnt iso9660 defaults 0 0
[root@localhost ~]# df 文件系統(tǒng) 1K-塊 已用 可用 已用% 掛載點(diǎn) /dev/mapper/cl-root 16250880 3542224 12708656 22% / devtmpfs 1000180 0 1000180 0% /dev tmpfs 1016076 84 1015992 1% /dev/shm tmpfs 1016076 9116 1006960 1% /run tmpfs 1016076 0 1016076 0% /sys/fs/cgroup /dev/sr0 4276440 4276440 0 100% /mnt /dev/sda1 508580 151316 357264 30% /boot /dev/mapper/cl-var 2086912 427160 1659752 21% /var tmpfs 203216 12 203204 1% /run/user/42 tmpfs 203216 0 203216 0% /run/user/0
?df
?報(bào)告文件系統(tǒng)磁盤的使情況
df [OPTIONS] file -l:顯示本地文件的相關(guān)信息 -h:以human_readabel的方式顯示 -i:顯示inode的使用狀態(tài),而不是block
[root@localhost ~]# df -l 文件系統(tǒng) 1K-塊 已用 可用 已用% 掛載點(diǎn) /dev/mapper/cl-root 16250880 3542172 12708708 22% / devtmpfs 1000180 0 1000180 0% /dev tmpfs 1016076 84 1015992 1% /dev/shm tmpfs 1016076 9112 1006964 1% /run tmpfs 1016076 0 1016076 0% /sys/fs/cgroup /dev/sda1 508580 151316 357264 30% /boot /dev/mapper/cl-var 2086912 426924 1659988 21% /var tmpfs 203216 12 203204 1% /run/user/42 tmpfs 203216 0 203216 0% /run/user/0
[root@localhost ~]# df -l /mnt/CentOS_BuildTag #查看某個(gè)文件屬于哪個(gè)文件系統(tǒng) 文件系統(tǒng) 1K-塊 已用 可用 已用% 掛載點(diǎn) /dev/sr0 4276440 4276440 0 100% /mnt
?dd
if=FILE:從FILE讀而不是標(biāo)準(zhǔn)輸入 of=FILE:寫到FILE里去,而不是標(biāo)準(zhǔn)輸出 ibs=BYTES:一次讀取BYTES個(gè)字節(jié) obs=BYTES:一次寫B(tài)YTES個(gè)字節(jié) bs=BYTES:一次性讀寫B(tài)YTES個(gè)字節(jié) skip=blocks:在拷貝之前,跳過輸出文件的前blocks個(gè)塊,每塊大寫為ibs個(gè)字節(jié) seek=blocks:在拷貝之前,跳過輸出文件的前 blocks 塊,每塊大小為 obs-byte 字節(jié) count=blocks:只拷貝輸入文件的前 blocks 塊(每塊的大小為 ibs-byte 字節(jié)),而不是全部內(nèi)容,直到文件末尾.
舉例:
1.將本地的/dev/sda整盤備份到/dev/sdb中
dd if=/dev/sda of=/dev/sdb
?2.將/dev/sda整盤保存到/root/my_sda
dd if=/dev/sda of=/root/my_sda
?3.備份MBR
dd if=/dev/sda of=/root/my_mbr count=1 bs=512
?一個(gè)好玩的設(shè)備文件/dev/zero,是一個(gè)輸入設(shè)備,它可以向外面不斷的吐0,另外的一個(gè)設(shè)備文件是/dev/null,它像一個(gè)無底洞一樣,可以吞噬一切數(shù)據(jù).
?4.格式化硬盤
dd if=/dev/zero of=/dev/sda bs=512 count=1
?查看當(dāng)前指定的文件或目錄占磁盤空間的大小,會遞歸顯示
du [OPTIONS] file -a:顯示對所有文件的統(tǒng)計(jì),而不只是包括子目錄. -b:輸出以字節(jié)為單位的大小,替代缺省時(shí)1024字節(jié)的計(jì)數(shù)單位. --block-size=size:輸出以塊為單位的大小,塊的大小為 size 字節(jié).( file- utils-4.0 的新選項(xiàng)) -h: 為每個(gè)數(shù)附加一個(gè)表示大小單位的字母,象用M表示二進(jìn)制 的兆字節(jié). -k:輸出以1024字節(jié)為計(jì)數(shù)單位的大小. -m:輸出以兆字節(jié)的塊為計(jì)數(shù)單位的大小(就是 1,048,576 字節(jié)). --max-depth=n:只輸出命令行參數(shù)的小于等于第 n 層的目錄的總計(jì). 詳細(xì)可以查看man手冊
本文永久更新鏈接地址:
歡迎參與《LINUX教學(xué):Linux磁盤分區(qū)及文件系統(tǒng)管理詳解》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/7045.html