通过命令“du–sk”, “du–Ask” 的区别,谈谈如何在有保护的文件系统中查看文件或文件夹的大小
我们都知道,在Windows中,右键单击一个文件或文件夹,选属性(Properties)可以看到这个文件或文件夹的大小。而这个大小是文件的原始大小,即逻辑大小(logical size)。即一个1KB的文本文件,通过这种方式,看到的大小就是1KB, 我们这里说的是“size”。
严格上来说,Windows上显示出来的是两个size,一个叫做“size”,另一个叫做“size on disk”. 此二者的区别,大致如下:Windows在格式化磁盘的时候,会选择使用什么文件系统来format,并且,同样的文件系统在格式化的时候也可以指定allocation unit (即cluster)的大小。 这个allocation unit的大小就是文件系统上寻址的最小单位。即假设我们format一块磁盘的时候,选择了NTFS,并且选择了allocation unit的大小是64KB,那么如果我们往这块盘上放一个1KB的文件,那么同时就会有63KB的空间被浪费掉。这时, 在文件上点右键,看属性,就会发现size是1KB,而size on disk是64KB。
如何查看Windows的某一块盘的allocation unit是多大呢?
假设我们想看C盘,那么可以使用命令:
fsutil fsinfo ntfsinfo c:
Linux下也可以查看同样的概念,这个概念在Linux下叫做Sector。
查看所有分区,可以使用命令:
fdisk –l
然而,在有保护的文件系统上,比如Isilon的OneFS,那么文件的大小就有了变化。而且当OneFS上启用了压缩功能,那么这个文件的大小如何查看就更是个值得仔细琢磨一下的问题了。
OneFS默认的文件保护等级是2d:1n, 即可以容忍任意两块磁盘同时坏掉或者一个节点的丢失。要达到这个保护等级,对于小文件来说就是需要3份拷贝,对于大文件来说就是要增加FEC的数据块,从而可以计算对丢失的数据进行恢复。那么2d:1n的保护等级会对一个比较大的文件增加多少数据块呢?说来有点复杂,这取决于Isilon cluster包含多少个节点。具体请看下图:
看2d:1n的一列,可以看到,集群小的时候每4个数据块就添加两个FEC数据块,集群大的时候可以每16个数据块添加两个FEC块。
说了这么多,现在回到正题,假设我有一个logical size(即原始文件大小)为48MB的文件,假如把它存储在一个4个节点的2d:1n的Isilon cluster上,那么OneFS会以8*6+8*2= 64MB的空间来存储这个文件。那么我该使用什么命令来查看从而得到文件的原始大小48MB和实际存储这个文件所消耗的磁盘空间64MB呢?
在FreeBSD操作系统上,可以通过如下命令来得到:
du –sh
使用这个命令来得到文件或文件夹实际占用的磁盘空间,如果是上文的例子,那么这个命令会得到64MB。(实际上,如果使用du –sk命令的话,得到的会是“文件的数据的大小”,与“inode的三份mirror大小24KB”的和)。
du –Ash
使用这个命令来得到文件或文件夹的logical size,这个命令会得到48MB。
在一台普通的H500上,查看文件大小的命令结果如下:
在开启了压缩的环境里,这个差距可能会更大,如下:
===============
Why is There a Big Difference Between ‘Size’ and ‘Size on Disk’?
https://www.howtogeek.com/180369/why-is-there-a-big-difference-between-size-and-size-on-disk/
How can I view the allocation unit size of a NTFS partition in Vista?
HOW TO FIND BLOCK SIZE IN LINUX AND UNIX
https://www.linuxnix.com/find-block-size-linux/
Finding the sector size of a partition
https://unix.stackexchange.com/questions/2668/finding-the-sector-size-of-a-partition
通过命令“du–sk”, “du–Ask” 的区别,谈谈如何在有保护的文件系统中查看文件或文件夹的大小的更多相关文章
- Linux下用ls和du命令查看文件以及文件夹大小
ls的用法 ls -l |grep "^-"|wc -l或find ./company -type f | wc -l 查看某文件夹下文件的个数,包括子文件夹里的. ls -lR ...
- Linux下查看文件或文件夹大小的命令df 、du、ls
转自:http://www.cnblogs.com/benio/archive/2010/10/13/1849946.html 当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的 ...
- Linux文件系统管理 常见命令df、du、fsck、dumpe2fs
概述 Linux文件系统管理 常见命令df.du.fsck.dumpe2fs. 文件系统查看命令:df 通过 df 命令可以査看已经挂载的文件系统的信息包括设备文件名.文件系统总大小.已经使用的大小. ...
- Linux下用ls和du命令查看文件以及文件夹大小(转)
转自:https://www.cnblogs.com/xueqiuqiu/p/7635722.html ls的用法 ls -l |grep "^-"|wc -l或find ./co ...
- linux如何查看目录或文件夹的总大小--du命令
记录一下如何查看一个目录或文件夹的总大小. 使用du命令的选项-s,可以统计整个目录或文件夹的大小. 例如 du -sk ./ 156k -k表示以KB为单位计算.
- Linux下查看文件和文件夹大小的df和du命令
转自:http://www.yayu.org/look.php?id=162 当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比 ...
- Linux命令(二十三) 磁盘管理命令(一) df,du,tune2fs
一. 查看磁盘占用空间情况 df df 命令用于查看硬盘空间的使用情况,还可以查看硬盘分区的类型或 inode 节点的使用情况等. df 命令常用参数如下: -a 显示所有文件系统的磁盘使用情况,包括 ...
- 每天一个linux命令(3):du命令
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是查看当前指定文件或目录(会递归显示子目录)占用磁盘空间大小,还是和df命令有一些区别的. 1.命令格式: du [选 ...
- Linux命令-文件系统常用命令:df,du,fsck,dumpe2fs
df -h 人性化显示文件系统的分区信息 注意:在linux中目录也是文件,不要混淆下面的目录文件说法. 传统方式查看文件大小可以使用:ll -h /目录/文件名,就可以看到文件的大小,但是如果你想看 ...
随机推荐
- hdfs基本操作
hdfs基本操作 1.查询命令 hadoop dfs -ls / 查询/目录下的所有文件和文件夹 hadoop dfs -ls -R 以递归的方式查询/目录下的所有文件 2.创建文件夹 hadoo ...
- window下用taskkill杀死进程
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } ...
- P1135 奇怪的电梯 dp
题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第ii层楼(1 \le i \le N)(1≤i≤N)上有一个数字K_i(0 \le K_i \le N)K ...
- 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
该题还是考杨辉三角计算,只不过最后每一行都放入List集合中,然后返回,直接看代码: public static List<List<Integer>> generate(in ...
- img-html-2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python 解决 :NameError: name 'reload' is not defined 问题
对于 Python 2.X: import sys reload(sys) sys.setdefaultencoding("utf-8") 1 2 3 对于 <= Pytho ...
- [洛谷P1880][NOI1995]石子合并
区间DP模板题 区间DP模板Code: ;len<=n;len++) { ;i<=*n-;i++) //区间左端点 { ; //区间右端点 for(int k=i;k<j;k++) ...
- python request 库
快速上手 迫不及待了吗?本页内容为如何入门Requests提供了很好的指引.其假设你已经安装了Requests.如果还没有, 去 安装 一节看看吧. 首先,确认一下: Requests 已安装 Req ...
- 37_Reverse3_digit_Integer
描述 反转一个只有3位数的整数. 你可以假设输入一定是一个只有三位数的整数,这个整数大于等于100,小于1000. [ ] 您在真实的面试中是否遇到过这个题? 样例 123 反转之后是 321. 90 ...
- java 使用CRF遇到的问题汇总
1.libCRFPP.so放在idea项目 resources下,打jar包时打在jar中. jar包工具类 /* * Class NativeUtils is published under the ...