Linux系统中“显示的大小”通常涉及多个概念,具体内容和扩展如下:
1. 文件大小(File Size)
通过`ls -l`或`stat`命令显示的是文件的逻辑大小,即实际数据占用的字节数。若文件包含空洞(稀件),逻辑大小可能大于物理占用的磁盘块大小(通过`ls -ls`或`du`查看)。
2. 磁盘占用(Disk Usage)
- `du`命令显示文件/目录实际占用的磁盘空间,单位为磁盘块(默认4KiB)。若文件系统启用压缩或去重,此值可能小于逻辑大小。
- `df`命令显示文件系统总容量、已用及可用空间,统计数据来自文件系统元数据,包含保留块(通常5%留给root)。
3. 内存相关大小
- `free -h`显示内存总量(Mem)、缓存(buff/cache)及可用内存(Available)。Available包含未被使用的内存及可回收的缓存,更准确反映剩余可用资源。
- `top/htop`中进程的VIRT(虚拟内存)包含共享库和映射文件,RES(常驻内存)为实际使用的物理内存,SHR(共享内存)是与其他进程共享的部分。
4. 符号链接与硬链接
- 符号链接显示的大小是链接路径的字符串长度(如`ls -l`),硬链接则与原文件共享inode,大小一致。
5. 文件系统开销
格式化时指定的块大小(如ext4默认4KiB)会影响小文件的磁盘占用。单个1字节文件仍占用一个块(4KiB),`du`会显示4KiB而非1字节。
6. 扩展知识
- 稀件:通过`dd if=/dev/zero of=sparsefile bs=1M seek=1024 count=0`创建,逻辑大小1GiB但磁盘占用为0,直到写入实际数据。
- LVM/RAID:底层存储的物理卷可能因条带化或镜像占用更多空间,需通过`vgs/lvs`或`mdadm`工具查看实际布局。
- Btrfs/ZFS:支持写时复制(COW)和压缩,`df`显示的已用空间可能因压缩率或快照保留而动态变化。
7. 特殊文件
`/proc`和`/sys`中的虚拟文件常显示大小为0,实际内容由内核动态生成(如`/proc/meminfo`)。