Linux下查看分区/文件夹大小

本文介绍Linux环境下如何使用df命令查看文件系统使用情况,利用du命令查询文件或文件夹占用的空间,并通过fdisk命令了解硬盘分区详情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下查看分区/文件夹大小

linux下:

一套电脑可以有多个硬盘,

每个硬盘只能有总个数不能超过4个的分区(包括主分区和扩展分区)

扩展分区可以划分为多个逻辑分区。

df命令可以显示目前所有文件系统的可用空间及使用情形.参数-h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。

例如:

[yayug@yayu ~]$ df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda1            3.9G  300M  3.4G   8% /
/dev/sda7            100G  188M   95G   1% /data0
/dev/sdb1            133G   80G   47G  64% /data1
/dev/sda6            7.8G  218M  7.2G   3% /var
/dev/sda5            7.8G  166M  7.2G   3% /tmp
/dev/sda3            9.7G  2.5G  6.8G  27% /usr
tmpfs                2.0G     0  2.0G   0% /dev/shm

上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。

    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。

du:查询文件或文件夹的磁盘使用空间,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间,所以得指定深入目录的层数,参数:--max-depth=

例如:

[root@bsso yayu]# du -h --max-depth=1work/testing

27M     work/testing/logs
35M     work/testing

fdisk: 通过fdisk -l 查看机器所挂硬盘个数及分区情况

[root@localhost beinan]# fdisk -l

  以下是表示第一块硬盘 hda

  Disk /dev/hda: 80.0GB, 80026361856 bytes

  255 heads, 63sectors/track, 9729 cylinders

  Units = cylindersof 16065 * 512 = 8225280 bytes

  Device Boot StartEnd Blocks Id System

  /dev/hda1 * 1 7656144831 7 HPFS/NTFS           主分区

  /dev/hda2 766 280516386300 c W95 FAT32 (LBA)   主分区

  /dev/hda3 2806 972955617030 5 Extended         扩展分区

  /dev/hda5 2806 38258193118+ 83 Linux           逻辑分区

  /dev/hda6 3826 510010241406 83 Linux           逻辑分区

  /dev/hda7 5101 5198787153+ 82 Linux swap / Solaris 逻辑分区

  /dev/hda8 5199 665711719386 83 Linux           逻辑分区

  /dev/hda9 6658 77518787523+ 83 Linux           逻辑分区

  /dev/hda10 77529729 15888253+ 83 Linux         逻辑分区

  以下是表示第二块硬盘sda

  Disk /dev/sda: 1035MB, 1035730944 bytes

  256 heads, 63sectors/track, 125 cylinders

  Units = cylindersof 16128 * 512 = 8257536 bytes

  Device Boot StartEnd Blocks Id System

  /dev/sda1 1 25201568+ c W95 FAT32 (LBA)       主分区

  /dev/sda2 26 125806400 5 Extended             扩展分区

  /dev/sda5 26 50201568+ 83 Linux

  /dev/sda6 51 76200781 83 Linux

  通过上面的信息,我们知道此机器中挂载两个硬盘(或移动硬盘),其中一个是hda 另一个是sda ;如果我们想查看单个硬盘情况,可以通过 fdisk -l /dev/hda1 或者fdisk -l /dev/sda1 来操作;以fdisk -l 输出的硬盘标识为准;

  其中 hda有三个主分区(包括扩展分区),分别是主分区 hda1 hda2 和hda3(扩展分区);逻辑分区是 hda5到hda10;

  其中 sda 有两个主分区(包括扩展分区),分别是 hda1 和hda2 (扩展分区);逻辑分区是 sda5 hda6 ;

  硬盘总容量=主分区(包括扩展分区)总容量

  扩展分区容量=逻辑分区总容量

  通过上面的例子,我们可以得知hda=hda1+hda2+hda3,其中hda3=hda5+hda6+hda7+hda8+hda9+hda10 …… ……

<think>嗯,用户想了解Linux系统中/sys/class目录的作用和内容。这个问题很具体,用户应该是个Linux系统管理员或开发人员,需要深入理解sysfs文件系统的组织结构。 从引用内容来看,用户已经查阅过一些资料,知道/sys/class是sysfs的一部分,但需要更系统的解释。用户可能真正想了解的是:如何通过/sys/class目录管理硬件设备?或者调试时如何利用这个目录的信息? 需要特别注意几个技术要点:首先必须强调/sys/class的虚拟文件系统特性,它不存储实际数据;其次要区分设备类型和具体设备目录的关系;最后要说明用户空间交互的方式。用户可能混淆了/sys/class和/proc的区别,这点要澄清。 用户提供的引用[1]和[3]特别有价值,其中提到“设备模型的分类视图”这个核心概念,以及网络接口eth0的具体案例。应该把这些内容融入解释中,但要用更通俗的语言重组。比如引用[3]提到的carrier、operstate等文件,正好可以作为实例说明。 考虑到用户的技术水平,解释需要结构化:先总体定位,再分层说明内容构成,最后用典型应用场景收尾。要避免直接复制内核文档的术语,比如“kobject”这类词可能反而会造成困惑。 在示例部分,准备用网eth0和块设备sda作为案例,这样覆盖了常见设备类型。特别注意要强调“symbolic link”这个关键机制——这是理解/sys/class工作原理的核心。用户可能不知道这些链接指向/sys/devices下的真实位置。 最后生成的问题要侧重实用场景:比如设备识别、状态监控、故障排查等。用户既然关心目录结构,大概率是要解决实际问题而非纯理论探讨。</think>在 Linux 系统中,`/sys/class/` 目录是 **sysfs 虚拟文件系统**的核心组成部分之一,其主要作用是为用户空间提供一种**基于设备功能类型(类别)的、结构化的视图**来访问内核中的设备、驱动程序和其他内核对象信息。 ### 核心用途 1. **设备模型的组织视图:** * `/sys/class/` 按照设备的功能或类型(如网络接口、输入设备、块设备、声、显、串口、LED等)将系统中的设备分类组织。 * 每个类别对应一个子目录(如 `net/`, `input/`, `block/`, `sound/`, `graphics/`, `tty/`, `leds/` 等)。 * 这种组织方式使得用户和管理员能够更容易地找到特定类型的设备,而不需要了解设备在物理总线或内核数据结构中的具体位置。 2. **暴露设备属性和操作接口:** * 在每个设备类别的子目录下,包含代表具体设备的子目录(如 `/sys/class/net/eth0/`, `/sys/class/block/sda/`)。 * 在这些具体的设备目录下,包含一系列**文件**和**符号链接**。 * **文件:** 这些文件通常代表设备的**属性**(只读或可读写)或**状态信息**。用户可以读取这些文件来获取设备信息(如设备状态、配置参数、统计信息等),也可以向某些文件写入值来**配置设备**或**触发操作**(如启用/禁用设备、修改参数)。 * **符号链接:** 这些链接通常指向该设备在 `/sys/devices/` 目录下的实际位置(反映了设备的物理或逻辑层次结构)以及可能指向其所属的驱动程序(在 `/sys/bus/.../drivers/`)或子系统。这提供了设备模型不同视图之间的连接。 3. **用户空间与内核交互的标准化接口:** * `/sys/class/` 提供了一种标准化的方式,让运行在用户空间的程序(如 udev、网络管理工具、监控工具、配置脚本)能够**发现设备**、**查询设备状态和属性**、以及**动态配置设备**。 * 例如,`udev` 守护进程大量使用 `/sys/class/`(特别是其中的 `uevent` 文件)来监控设备事件(如热插拔)并据此在 `/dev/` 目录下创建设备节点文件,或应用自定义规则(如设置权限、创建符号链接、加载固件)。 ### 包含的主要内容 `/sys/class/` 目录下的内容结构大致如下: ``` /sys/class/ ├── block/ # 块设备 (硬盘, 分区) │ ├── sda/ # 第一块 SATA/SAS/USB 硬盘 │ │ ├── device -> ../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda # 符号链接到物理设备 │ │ ├── size # 设备总大小 (以 512 字节扇区为单位) │ │ ├── stat # I/O 统计信息 │ │ ├── queue/ # I/O 调度队列相关参数 │ │ └── ... # 其他属性文件 (如 power/, capability, removable) │ ├── sda1/ # sda 的第一个分区 │ └── ... # 其他块设备 (sdb, sdc, loop0, nvme0n1 等) │ ├── net/ # 网络接口 │ ├── eth0/ # 第一个有线以太网接口 │ │ ├── address # MAC 地址 │ │ ├── carrier # 物理链路载波状态 (1=有连接, 0=无连接) │ │ ├── mtu # 最大传输单元 (可读写) │ │ ├── operstate # 操作状态 (up, down, dormant 等) │ │ ├── speed # 当前连接速度 (Mbps) │ │ ├── statistics/ # 包含各种网络统计计数 (rx_bytes, tx_bytes, rx_errors, tx_errors 等) │ │ └── ... # 其他属性 (如 duplex, ifindex, flags) │ ├── wlan0/ # 第一个无线网络接口 │ └── ... # 其他网络接口 (lo, vethX, brX, tunX 等) │ ├── input/ # 输入设备 (键盘, 鼠标, 触摸板等) │ ├── input0/ # 一个输入设备 │ │ ├── name # 设备名称 │ │ ├── capabilities # 设备支持的能力 │ │ └── ... # 其他属性 │ └── ... # 其他输入设备 │ ├── sound/ # 声和音频设备 │ ├── card0/ # 第一个声 │ └── ... # 其他声 │ ├── graphics/ # 图形设备 (显, framebuffer) │ ├── fb0/ # 第一个 framebuffer 设备 │ └── ... # 其他图形设备 │ ├── tty/ # 终端设备 (串口, 控制台, 虚拟终端) │ ├── ttyS0/ # 第一个串口 (COM1) │ ├── tty0/ # 第一个虚拟控制台 │ └── ... # 其他终端设备 (ttyUSBX, pts/X 等) │ ├── leds/ # LED 指示灯 │ ├── inputX::capslock/ # 键盘上的大写锁定指示灯 │ │ ├── brightness # 当前亮度 (可读写) │ │ └── trigger # 触发模式 (如 none, kbd-capslock, heartbeat, timer) │ └── ... # 其他 LED (如机箱电源灯, 硬盘灯) │ ├── bdi/ # Backing Device Information (用于内存回写) ├── firmware/ # 固件加载接口 ├── mem/ # 内存设备 (如 /dev/mem, /dev/kmem) ├── power_supply/ # 电源设备 (电池, AC 适配器) ├── thermal/ # 温度传感器与冷却设备 ├── usbmisc/ # 杂项 USB 设备 ├── watchdog/ # 看门狗定时器设备 └── ... # 其他可能的设备类别 (取决于内核配置和加载的驱动) ``` ### 关键特点总结 1. **虚拟性:** `/sys/class/` 及其内容完全由内核在内存中动态生成,不占用实际磁盘空间。文件大小通常显示为 0。 2. **分类视图:** 按设备功能分类组织,方便用户按类型查找和管理设备。 3. **属性接口:** 通过读写文件来访问和配置设备属性及状态。 4. **符号链接:** 通过符号链接关联到 `/sys/devices/`(物理/逻辑层次视图)和 `/sys/bus/`(总线/驱动视图),构成完整的 sysfs 设备模型。 5. **用户空间交互:** 是用户空间工具(udev, 网络脚本, 监控工具等)与内核设备模型交互的主要标准化接口。 6. **动态更新:** 内容随着硬件设备的插拔、驱动模块的加载卸载而动态变化。 **简单来说,`/sys/class/` 是 Linux 统一设备模型(Udev)呈现给用户空间的“设备黄页”,它按照设备类型分类,为每个设备提供了查询信息和控制操作的标准化文件接口**[^1][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值