cp 的实验验证默认策略:
cp ./test.txt ./test.txt.autoalways 策略:cp --sparse=always ./test.txt ./test.txt.alwaysnever 策略(这条命令敲下去可能有点慢哦,并且要预留好足够空间):cp --sparse=never ./test.txt ./test.txt.never以上三个命令敲完,生成了三个文件,给大家 1 秒钟的思考时间,思考下 test.txt.auto,test.txt.always,test.txt.never,这三个文件的属性有何异同 。..... ..... .....
结果揭秘:
test.txt.auto
sh-4.4# stat ./test.txt.auto File: ./test.txt.auto Size: 1073741824 Blocks: 16 IO Block: 4096 regular fileDevice: 6ah/106d Inode: 3148348 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2021-03-13 15:58:57.395725000 +0000Modify: 2021-03-13 15:58:57.395725000 +0000Change: 2021-03-13 15:58:57.395725000 +0000 Birth: -- Size: 1073741824:文件大小 1G
- Blocks: 8:物理空间占用 8K
sh-4.4# stat ./test.txt.always File: ./test.txt.always Size: 1073741824 Blocks: 8 IO Block: 4096 regular fileDevice: 6ah/106d Inode: 3148349 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2021-03-13 15:59:01.064725000 +0000Modify: 2021-03-13 15:59:01.064725000 +0000Change: 2021-03-13 15:59:01.064725000 +0000 Birth: -- Size: 1073741824:文件大小 1G
- Blocks: 8:物理空间占用 4K
sh-4.4# stat ./test.txt.never File: ./test.txt.never Size: 1073741824 Blocks: 2097160 IO Block: 4096 regular fileDevice: 6ah/106d Inode: 3148350 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2021-03-13 15:59:04.774725000 +0000Modify: 2021-03-13 15:59:05.977725000 +0000Change: 2021-03-13 15:59:05.977725000 +0000 Birth: -- Size: 1073741824:文件大小 1G
- Blocks: 2097160:物理空间占用 1G

文章插图
知识点总结

文章插图
- 文件系统对外提供文件语义,本质只是管理磁盘空间的软件而已;
- 经典的文件系统主要划分 3 大块 superblock 区,inode 区,block 区(块描述区,bitmap区这里暂不介绍) 。一个文件在文件系统的内部形态由一个 inode 记录元数据加上 block 存储用户存储用户数据样子;
- 文件系统的 size 是文件大小,是逻辑空间大小,文件大小 size 和真实的物理空间并不是一个概念;
- 稀疏语义是文件系统提供的一种特性,根本用途是用来更有效的利用磁盘空间;
- 后分配空间是空间利用最有效的方式,公有云的云盘靠什么赚钱?就是后分配,你买了 2T 的云盘,在没有写入数据的时候,一个字节都没给你分配,你却是付出 2T 的价格;
- stat 命令能够查看物理空间占用,Blocks 表示的是扇区(512字节)个数;
- 稀疏文件的空洞和用户真正的全 0 数据是无法区分的,因为对外表现是一样的(这点非常重要);
推荐阅读
- Linux查看硬件信息超强命令sar,以及可视化工具ksar
- 微信正在用的深度学习框架开源!支持稀疏张量,基于C++开发
- PC电脑|5分钟开机上千台 无影云电脑免费体验1周:Win、Linux通吃
- linux内核SMP负载均衡浅析
- 浅谈在Linux中如何将脚本做成系统服务开机自启动
- 寒湿型肥胖喝什么茶,喝什么茶排寒湿深度好文
- Linux服务器磁盘满了怎么办
- 色相饱和度深度解析,photoshop明度观察层是什么?原理讲解
- linux安装php步骤详解
- 「linux专栏」top命令用法详解,再也不怕看不懂top了
