Linux du 命令详解:查看磁盘使用情况与高级用法 (中英双语)查看某个用户磁盘占用

Linux du 命令详解:查看磁盘使用情况与高级用法

在 Linux 服务器或个人计算机中,了解磁盘使用情况是系统维护的关键任务之一。duDisk Usage)命令是 Linux 提供的一个强大工具,可以帮助我们分析目录和文件的磁盘占用情况。本文将详细介绍 du 命令的基础用法、如何查看不同用户的磁盘占用情况,以及一些高级技巧,以帮助你更高效地管理磁盘空间。

1. du 命令简介

dudisk usage,磁盘使用情况)用于统计文件或目录所占用的磁盘空间。其基本语法如下:

du [选项] [文件或目录]

默认情况下,du 会递归统计指定目录中的所有文件和子目录,并返回每个子目录的大小,最终在末尾输出整个目录的总大小。

2. 基础用法

2.1 查看当前目录大小

du -sh .
  • -s:仅显示目录或文件的总大小,而不显示子目录的大小。
  • -h:以人类可读格式(如 KB、MB、GB)显示结果。

例如:

$ du -sh .
1.2G    .

表示当前目录占用 1.2G 磁盘空间。

2.2 查看单个文件的大小

du -h example.txt

如果 example.txt 占用 2.5M,那么输出将类似:

2.5M    example.txt

3. 统计每个用户的磁盘占用情况

在多用户 Linux 服务器上,我们通常需要统计每个用户的磁盘使用量。假设用户的家目录都在 /home 目录下,我们可以使用以下命令:

sudo du -sh /home/*

示例输出:

4.2G    /home/alice
8.7G    /home/bob
2.1G    /home/charlie

如果服务器上的数据存放在 /data 目录下,我们可以运行:

sudo du -sh /data/*

示例输出:

50G     /data/projectA
120G    /data/projectB

如果需要按照用户进行归类统计,可以结合 awk 进行处理:

sudo du -sh /home/* | awk '{print $2, $1}'

输出结果示例:

/home/alice 4.2G
/home/bob 8.7G
/home/charlie 2.1G

4. du 命令的高级用法

4.1 按层级列出目录大小

有时候,我们希望按照目录层级查看占用情况,例如 /var/log 目录下的空间使用情况,可以使用:

du -h --max-depth=1 /var/log

示例输出:

4.0K    /var/log/apt
1.2M    /var/log/nginx
500M    /var/log/journal
501M    /var/log

--max-depth=1 选项限制 du 仅统计指定层级的目录大小,不会递归到更深的子目录。

4.2 排序磁盘使用情况

我们可以将 du 的输出按大小排序,快速找出占用空间最大的目录:

du -h --max-depth=1 /home | sort -hr

示例输出:

12G     /home/bob
7G      /home/alice
2G      /home/charlie

sort -hr 作用:

  • -h:按照人类可读格式(如 K、M、G)进行排序。
  • -r:按降序排列。

4.3 统计指定类型文件的磁盘占用情况

如果我们想查看某个目录下特定类型的文件(如 .log 文件)占用多少磁盘空间,可以结合 find 命令:

find /var/log -name "*.log" -exec du -ch {} + | grep total$

示例输出:

1.5G    total

表示所有 .log 文件总计占用 1.5G 空间。

4.4 仅统计某个用户的文件占用空间

如果想查看某个用户(如 alice)在整个系统中的文件占用情况,可以使用:

sudo du -sh /home/alice

如果用户的数据可能存放在 /data 目录,也可以添加:

sudo du -sh /home/alice /data/alice

或者查找整个 / 根目录下属于 alice 用户的文件:

sudo find / -user alice -exec du -ch {} + | grep total$

5. dudf 的对比

du 主要用于分析文件和目录的实际占用空间,而 dfdisk free)则用于查看整个磁盘的使用情况。例如:

df -h

示例输出:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1      500G  350G  150G  70% /
tmpfs          7.8G   2M   7.8G   1% /run
  • df 关注整个磁盘的分区使用情况,而 du 适用于深入分析目录和文件的使用情况。

6. 总结

本文介绍了 du 命令的基础用法、如何统计各个用户的磁盘占用情况,并列举了一些高级技巧,如按层级统计、按大小排序、统计特定类型文件的使用情况等。在管理 Linux 服务器或本地系统时,du 是一个非常有用的工具,能够帮助我们高效地监控磁盘空间并找出占用大量存储的文件或目录。

在实际运维中,可以将 du 命令与 findsortawk 等工具结合使用,以实现更强大的分析能力,提高磁盘管理效率!

Understanding the du Command in Linux: An In-Depth Guide

Managing disk space is a critical task in Linux system administration, whether on personal machines or enterprise servers. The du (Disk Usage) command is a powerful tool that helps users analyze and monitor disk space usage at the file and directory level. This article will cover the basics of du, how to check disk usage by individual users, and some advanced techniques to enhance your workflow.


1. Introduction to du

The du (disk usage) command is used to estimate file space usage. Its basic syntax is:

du [OPTIONS] [FILE or DIRECTORY]

By default, du recursively scans directories and returns the size of each subdirectory before displaying the total.


2. Basic Usage

2.1 Checking the Size of the Current Directory

To quickly check how much space the current directory is using:

du -sh .

Explanation:

  • -s: Summarizes the total size without showing individual files and subdirectories.
  • -h: Displays results in a human-readable format (e.g., KB, MB, GB).

Example output:

1.2G    .

This means the current directory consumes 1.2GB of space.

2.2 Checking the Size of a Specific File

To check the size of a single file:

du -h example.txt

Example output:

2.5M    example.txt

This means the file occupies 2.5MB of disk space.


3. Checking Disk Usage by User

On multi-user Linux servers, it is essential to monitor each user’s disk usage. If users store their data under /home, we can check their usage with:

sudo du -sh /home/*

Example output:

4.2G    /home/alice
8.7G    /home/bob
2.1G    /home/charlie

For servers that store user data in /data, use:

sudo du -sh /data/*

Example output:

50G     /data/projectA
120G    /data/projectB

To format the output more neatly, we can use awk:

sudo du -sh /home/* | awk '{print $2, $1}'

Example output:

/home/alice 4.2G
/home/bob 8.7G
/home/charlie 2.1G

4. Advanced du Usage

4.1 Displaying Disk Usage by Directory Depth

To view the size of subdirectories at a specific depth (e.g., /var/log), use:

du -h --max-depth=1 /var/log

Example output:

4.0K    /var/log/apt
1.2M    /var/log/nginx
500M    /var/log/journal
501M    /var/log

The --max-depth=1 option limits the recursion depth to only the first level.

4.2 Sorting Disk Usage

Sorting directories by size helps identify large space consumers:

du -h --max-depth=1 /home | sort -hr

Example output:

12G     /home/bob
7G      /home/alice
2G      /home/charlie
  • sort -hr:
    • -h: Sorts in human-readable format (e.g., K, M, G).
    • -r: Reverses the order (largest first).

4.3 Finding the Space Usage of Specific File Types

To check the total space used by .log files in /var/log:

find /var/log -name "*.log" -exec du -ch {} + | grep total$

Example output:

1.5G    total

This means all .log files combined take up 1.5GB of space.

4.4 Checking Disk Usage by a Specific User

To analyze how much space a particular user (e.g., alice) is using:

sudo du -sh /home/alice

If the user also stores files under /data, check:

sudo du -sh /home/alice /data/alice

To find all files belonging to alice across the system:

sudo find / -user alice -exec du -ch {} + | grep total$

5. du vs. df

While du measures individual file and directory sizes, df (disk free) provides an overview of disk partition usage:

df -h

Example output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1      500G  350G  150G  70% /
tmpfs          7.8G   2M   7.8G   1% /run
  • df shows free and used space for disk partitions.
  • du breaks down space usage at the directory and file level.

6. Summary

This article explored the du command in detail, covering:

  • Basic usage for analyzing file and directory sizes.
  • Checking disk usage per user.
  • Advanced techniques such as sorting, filtering by file type, and limiting directory depth.
  • Differences between du and df.

By mastering du, system administrators and users can efficiently monitor and manage disk space, preventing storage issues before they become critical. Integrating du with tools like find, sort, and awk further enhances its usefulness in daily operations.

后记

2025年2月5日于山东日照。在GPT4o大模型辅助下完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/964883.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库系统概念第六版记录 一

1.关系型数据库 关系型数据库(Relational Database,简称 RDB)是基于关系模型的一种数据库,它通过表格的形式来组织和存储数据。每个表由若干行(记录)和列(字段)组成,数据…

嵌入式工程师必学(143):模拟信号链基础

概述: 我们每天使用的许多电子设备,以及我们赖以生存的电子设备,如果不使用电子工程师设计的实际输入信号,就无法运行。 模拟信号链由四个主要元件组成:传感器、放大器、滤波器和模数转换器 (ADC)。这些传感器用于检测、调节模拟信号并将其转换为适合由微控制器或其他数…

2.5学习

misc buuctf-假如给我三天光明 下载附件后得到了一个压缩包和一个图片,压缩包为加密压缩包,需要解出密码,然后注意到这个图片并非简单的一个封面,在下方还有诸多点,有黑有灰。经过搜索,发现这是盲文通过与…

嵌入式八股文面试题(一)C语言部分

1. 变量/函数的声明和定义的区别? (1)变量 定义不仅告知编译器变量的类型和名字,还会分配内存空间。 int x 10; // 定义并初始化x int x; //同样是定义 声明只是告诉编译器变量的名字和类型,但并不为它分配内存空间…

设备通过国标GB28181接入EasyCVR,显示在线但视频无法播放的原因排查

安防监控EasyCVR平台支持多种视频源接入,包括但不限于IP摄像头、NVR、编码器、流媒体服务器等。平台采用高效的视频流接入技术,支持大规模视频流的并发接入,确保视频流的稳定性和流畅性。 有用户反馈,项目现场使用国标GB28181接入…

Electricity Market Optimization 探索系列(三)

本文参考链接link 电网容量规划是一个寻求最优发电容量的过程,找到的最优发电容量能够可靠地满足未来电网的需求 发电机的容量和发电成本呈正相关关系,一台发电机的发电量不能超过其额定发电容量,结合我之前的博客所说的内容,可…

深入理解和使用定时线程池ScheduledThreadPoolExecutor

文章目录 前言认识定时线程池什么是定时线程池?定时线程池基本API使用定时线程池的应用场景1、定时任务调度2、缓存过期清理3、心跳检测4、延迟任务执行 定时线程池scheduleAtFixedRate与scheduleWithFixedDelay区别scheduleAtFixedRate案例demo(period&…

在Mac mini M4上部署DeepSeek R1本地大模型

在Mac mini M4上部署DeepSeek R1本地大模型 安装ollama 本地部署,我们可以通过Ollama来进行安装 Ollama 官方版:【点击前往】 Web UI 控制端【点击安装】 如何在MacOS上更换Ollama的模型位置 默认安装时,OLLAMA_MODELS 位置在"~/.o…

动态规划练习九(完全背包问题)

一、问题介绍与解题心得 完全背包问题与01背包问题很相似,不同点就是每个物品数量有多个,每个物品可以取多个或不取,来达到收益最大,或者收益在某个值。 限制条件:背包容量有限 解决问题:从价值入手&…

百亿大表的实时分析:华安基金 HTAP 数据库的选型历程与 TiDB 使用体验

导读 在金融科技迅猛发展的今天,华安基金作为行业的先行者,面临着数据管理和分析的全新挑战。随着业务的不断扩展和数据量的激增,传统的数据库架构已难以满足系统对实时性、灵活性和分析能力的需求。在这样的背景下,HTAP&#xf…

低代码系统-产品架构案例介绍、蓝凌(十三)

蓝凌低代码系统,依旧是从下到上,从左至右的顺序。 技术平台h/iPaas 指低层使用了哪些技术,例如:微服务架构,MySql数据库。个人认为,如果是市场的主流,就没必要赘述了。 新一代门户 门户设计器&a…

DeepSeek研究员在线爆料:R1训练仅用两到三周,春节期间观察到R1 zero强大进化

内容提要 刚刚我注意到DeepSeek研究员Daya Guo回复了网友有关DeepSeek R1的一些问题,以及接下来的公司的计划,只能说DeepSeek的R1仅仅只是开始,内部研究还在快速推进,DeepSeek 的研究员过年都没歇,一直在爆肝推进研究…

【Rust自学】20.1. 最后的项目:单线程Web服务器

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 20.1.1. 什么是TCP和HTTP Web 服务器涉及的两个主要协议是超文本传输​​协议(Hypertext T…

19.[前端开发]Day19-王者荣项目耀实战(二)

01_(掌握)王者荣耀-main-banner展示实现 完整代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…

Java 基于微信小程序的高校失物招领平台小程序(附源码,文档)

博主介绍&#xff1a;✌程序员徐师兄、8年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战*✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447…

题解:洛谷 P5837 [USACO19DEC] Milk Pumping G

题目https://www.luogu.com.cn/problem/P5837 温馨提示&#xff1a;鉴于数据范围小的可怜&#xff0c;我们可以用暴力一些的想法去做&#xff0c;别看到是普及/提高就被吓退了。 枚举最小流量 &#xff0c;然后跑一遍最短路&#xff0c;求出带限制的 到 的最短路的长度&#…

动态规划——斐波那契数列模型问题

文章目录 1137. 第 N 个泰波那契数算法原理代码实现 面试题 08.01. 三步问题算法原理代码实现 746. 使用最小花费爬楼梯算法原理代码实现 91. 解码方法算法原理代码实现 1137. 第 N 个泰波那契数 题目链接&#xff1a;1137. 第 N 个泰波那契数 算法原理 状态表示&#xff1a;…

LabVIEW涡轮诊断系统

一、项目背景与行业痛点 涡轮机械是发电厂、航空发动机、石油化工等领域的核心动力设备&#xff0c;其运行状态直接关系到生产安全与经济效益。据统计&#xff0c;涡轮故障导致的非计划停机可造成每小时数十万元的经济损失&#xff0c;且突发故障可能引发严重安全事故。传统人…

java程序员面试自身优缺点,详细说明

程序员面试大厂经常被问到的Java异常机制问题,你搞懂了吗运行时异常:运行时异常是可能被程序员避免的异常。与检查性相反,运行时异常可以在编译时被忽略。错误(ERROR):错误不是异常,而是脱离程序员控制的问题。错误通常在代码中容易被忽略。例如:当栈溢出时,一个错误就发生了,它…

大话特征工程:3.特征扩展

公元 2147 年&#xff0c;人类文明站在科技的巅峰&#xff0c;所有决策、发展甚至感知都被“全维计算网络”所掌控。这套系统以高维空间中的数据为基础&#xff0c;试图预测并塑造未来。然而&#xff0c;这场辉煌的技术革命却在悄无声息之间酿成了人类最大的危机——维数灾难。…