du-磁盘占用管理
du-磁盘占用管理
在先前发现Git
管理的项目特别大,在平时开发的时候可能提交了二进制文件,但是这部分文件无法进行diff
处理变更进行版本控制。因此当这类文件不断删除新增,导致整个项目文件夹越来越大。
然后先前通过BGF
处理了Git
历史Blob
文件,这个过程中发现Mac
系统无法直接选中某些文件夹的硬盘总数占用,所以只能通过du
命令来查看相关文件夹的大小。
du
命令是Disk Usage
的缩写,用于估算和显示文件系统中的文件和目录的磁盘使用情况。
语法#
du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
参数#
-a, --all
: 对所有文件计数,包括目录。--apparent-size
: 打印表观大小,而不是磁盘使用量。虽然表观大小通常较小,但由于稀疏文件的孔洞、内部碎片和间接块,其可能更大。-B, --block-size=SIZE
: 在打印之前按SIZE
缩放大小。例如,-BM
以1,048,576
字节为单位打印大小。-b, --bytes
: 相当于--apparent-size --block-size=1
。-c, --total
: 显示总计。-D, --dereference-args
: 只解除命令行中列出的符号链接的引用。--files0-from=F
: 汇总文件F中指定的以空字节终止的文件名的磁盘使用情况,如果F
是-
,则从标准输入读取名字。-H
: 相当于--dereference-args (-D)
。-h, --human-readable
: 以人类可读的格式打印大小,舍入数值并使用缩写。例如,1K
,234M
,2G
等。--si
: 类似于-h
,但使用1000
的幂,而不是1024
。-k
: 类似于--block-size=1K
。-l, --count-links
: 多次计算大小(如果有硬链接)。-m
: 类似于--block-size=1M
。-L, --dereference
: 引用所有符号链接。-P, --no-dereference
: 不追踪任何符号链接(这是默认设置)。-0, --null
: 用0字节而不是换行符结束每个输出行。-S, --separate-dirs
: 不包括子目录的大小。-s, --summarize
: 仅针对每个参数显示总计。-x, --one-file-system
: 跳过不同文件系统上的目录。-X, --exclude-from=FILE
: 排除与FILE
中的任何模式匹配的文件。--exclude=PATTERN
: 排除与PATTERN
匹配的文件。-d, --max-depth=N
: 仅在目录(或文件,带有--all
时)位于命令行参数以下的N
个或更少级别时才打印总计,--max-depth=0
等同于--summarize
。--time
: 显示目录中任何文件或其子目录的最后修改时间。--time=WORD
: 按WORD
而不是修改时间显示时间:atime
,access
,use
,ctime
或status
。--time-style=STYLE
: 使用样式STYLE
显示时间:full-iso
,long-iso
,iso
,或+
格式(FORMAT
的解释类似于date
的格式)。--help
: 显示帮助信息并退出。--version
: 输出版本信息并退出。
示例#
显示当前目录及其子目录所占的磁盘空间。
du -h
仅显示某个特定目录的磁盘使用情况,默认会递归地显示目录使用情况。
du -h /home
递归地显示某个目录下每个文件和子目录所占的空间,并最终汇总显示总使用空间。
du -ah /home
显示当前目录下的一级子目录的空间使用情况。
du -h -d 1
显示当前目录的空间占用。
du -h -d 0
显示文件系统的磁盘空间使用情况disk free
。
df -h
显示当前目录下的所有文件和子目录的磁盘使用情况,并按照大小排序。
du -a -h -d 1 | sort -h -r
显示当前目录下的所有文件和子目录的磁盘使用情况,排除部分文件夹,并按照大小排序。
du -a -h -d 1 --exclude=.git --exclude=node_modules | sort -h -r
find . -maxdepth 1 \( -path ./.git -o -path ./node_modules \) -prune -o -exec du -sh {} + | sort -h -r # Mac
仅检查某个文件的大小。
du -h tsconfig.json
使用grep
过滤查看某个文件的体积,这在符号连接中比较有用。
ls -l -h tsconfig.json
du -a -h -d 1 | grep tsconfig.json
find . -maxdepth 1 -print0 | xargs -0 du -sh | grep tsconfig.json # Mac
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
2021-02-16 systemctl命令