当前位置: 首页 > news >正文

linux 常用和不那么常用命令记录02 磁盘占用

常用的磁盘相关命令

du

有的时候我们想要查询一个文件所占用的磁盘空间大小,可以使用du命令来查看

命令  配置          参数
du [options] [files or directories]-h:以人类可读的格式显示输出(例如 KB、MB、GB)。
-s:显示总计空间,而不显示每个子目录的具体大小。
-c:显示所有文件和目录的总计空间。
-k:以 KB 为单位显示大小(默认单位)。
-m:以 MB 为单位显示大小。查看当前目录下各子目录的大小:du -h
查看特定目录的大小:du -h /path/to/directory
查看当前目录下所有文件和目录的总大小:du -ch[root@iZf8z220xgn9qu9ja4ehb9Z test]# du -ch test01/
8.0K	test01/
8.0K	total

df

有的时候我们想要查询整个文件系统的磁盘使用情况,其基本语法为

df [options] [filesystem]-h:以人类可读的格式显示输出。
-T:显示文件系统类型。
-t:仅显示指定类型的文件系统。
-i:显示 inode 使用情况而不是磁盘块使用情况。查看所有挂载的文件系统的磁盘使用情况:df -h
查看特定文件系统的磁盘使用情况:df -h /dev/sda1
查看 inode 使用情况:df -i

常见区别

  • du:用于查看文件或目录的实际大小,即磁盘上所占用的空间。
  • df:用于查看文件系统的总体情况,包括已用空间、剩余空间和文件系统类型等。

组合使用

打个比方 生产环境 突然空间满了 我们需要快速找到哪里满了

首先使用df -h  查看文件系统 找到 占用百分之百的目录位置

一旦确定了哪个文件系统空间较满,进入该文件系统并使用 du 命令逐步深入查找:

# 进入目标文件系统,例如进入 / 目录下
cd /
# 查看当前目录下子目录的大小,排序并显示最大的几个
du -h --max-depth=1 | sort -hr

上述命令会列出当前目录下各个子目录的大小,并按照大小倒序排序。可以通过调整 --max-depth= 参数来控制显示的深度。例如,--max-depth=2 将显示当前目录及其直接子目录的大小。

使用 find 命令查找大文件

有时候不仅是目录占用空间大,还可能是某个单独的大文件导致空间紧张。可以使用 find 命令来查找特别大的文件:

# 在 / 目录下查找大于100MB的文件
find / -type f -size +100M -exec du -h {} +

这个命令会列出 / 目录及其子目录下所有大于100MB的文件,并显示它们的大小。

具体示例

比如说 我得root 家目录满了 使用df -h 将看到什么状态 怎么快速定位到时root目录满了

如果你的根目录(root目录)满了,使用 df -h 命令可以帮助你快速查看文件系统的使用情况,并找出满了的根目录。

假设你运行 df -h 命令后,可能会看到类似的输出:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       20G   19G   0     100% /

解释一下每一列的含义:

  • Filesystem: 文件系统的设备名或者标识符。
  • Size: 文件系统总容量。
  • Used: 已使用的空间量。
  • Avail: 可用的空间量。
  • Use%: 已使用空间占总容量的百分比。
  • Mounted on: 文件系统挂载的目录。

在上面的例子中,根目录 / 的文件系统(假设是 /dev/sda1)显示已使用了 19GB 的空间,总容量是 20GB,使用了 100% 的空间,即根目录已经满了。

为了快速定位根目录下占用空间较大的目录或文件,你可以进入根目录,并使用 du 命令来查看各个子目录的大小,然后再进一步定位具体的大文件或目录。例如:

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

 

这会列出根目录下各个子目录的大小,并按照大小倒序排序,帮助你找出哪些目录占用了大量空间。

如果你已经确定了具体的大文件或目录,可以使用 find 命令进一步查找大文件:

find / -type f -size +100M -exec du -h {} +

这个命令会在根目录及其子目录下查找大于100MB的文件,并显示它们的大小。

通过这些方法,你可以快速定位到根目录满了的原因,并采取相应的措施来释放空间或者重新规划存储策略。

未完待续

磁盘分区

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 开源项目的机遇与挑战
  • 设计分享—国外后台界面设计赏析
  • 视频号的视频,一键就下载了,方法全在这儿了!
  • STM32智能无人机控制系统教程
  • 【D3.js in Action 3 精译】D3 入门基础之 Node、JavaScript 框架与 Observable 记事本
  • stm32基本定时器
  • 认证和授权类漏洞挖掘指南
  • uniapp 封装瀑布流组件
  • H5与小程序:两者有何不同?
  • 【Java 注解,自定义注解,元注解,注解本质,注解解析】
  • STM32(一):安装环境
  • MySQL创建新用户并赋予指定数据库权限
  • centos系统查找mysql的配置文件位置
  • iOS UITableView自带滑动手势和父视图添加滑动手势冲突响应机制探索
  • 数据结构基础--------【二叉树基础】
  • 【技术性】Search知识
  • 08.Android之View事件问题
  • AngularJS指令开发(1)——参数详解
  • CSS中外联样式表代表的含义
  • EOS是什么
  • iOS 颜色设置看我就够了
  • IP路由与转发
  • JAVA并发编程--1.基础概念
  • JS 面试题总结
  • Laravel 实践之路: 数据库迁移与数据填充
  • Object.assign方法不能实现深复制
  • Python_网络编程
  • use Google search engine
  • Vue.js-Day01
  • WebSocket使用
  • 阿里云Kubernetes容器服务上体验Knative
  • 关于字符编码你应该知道的事情
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 突破自己的技术思维
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 一个SAP顾问在美国的这些年
  • 自动记录MySQL慢查询快照脚本
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​ubuntu下安装kvm虚拟机
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • (1)Hilt的基本概念和使用
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (回溯) LeetCode 40. 组合总和II
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (算法)Game
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)linux下的时间函数使用
  • (转)Sql Server 保留几位小数的两种做法
  • (转)VC++中ondraw在什么时候调用的
  • (转)人的集合论——移山之道
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ****三次握手和四次挥手
  • .NET MAUI Sqlite程序应用-数据库配置(一)