Linux查看文件大小的命令du的简单介绍

2023-11-16


官方介绍

我的理解:du是document的简写形式。

Ubuntu的du命名解释详情:man du输出内容:

DU(1)                                  User Commands                                 DU(1)

NAME
       du - estimate file space usage

SYNOPSIS
       du [OPTION]... [FILE]...
       du [OPTION]... --files0-from=F

DESCRIPTION
       Summarize disk usage of the set of FILEs, recursively for directories.

       Mandatory arguments to long options are mandatory for short options too.

       -0, --null
              end each output line with NUL, not newline

       -a, --all
              write counts for all files, not just directories

       --apparent-size
              print  apparent sizes, rather than disk usage; although the apparent size is
              usually smaller, it may be larger due to holes in ('sparse') files, internal
              fragmentation, indirect blocks, and the like

       -B, --block-size=SIZE
              scale  sizes by SIZE before printing them; e.g., '-BM' prints sizes in units
              of 1,048,576 bytes; see SIZE format below

       -b, --bytes
              equivalent to '--apparent-size --block-size=1'

       -c, --total
              produce a grand total

       -D, --dereference-args
              dereference only symlinks that are listed on the command line

       -d, --max-depth=N
              print the total for a directory (or file, with --all) only if  it  is  N  or
              fewer  levels below the command line argument;  --max-depth=0 is the same as
              --summarize

       --files0-from=F
              summarize disk usage of the NUL-terminated file names specified in  file  F;
              if F is -, then read names from standard input

       -H     equivalent to --dereference-args (-D)

       -h, --human-readable
              print sizes in human readable format (e.g., 1K 234M 2G)

       --inodes
              list inode usage information instead of block usage

       -k     like --block-size=1K

       -L, --dereference
              dereference all symbolic links

       -l, --count-links
              count sizes many times if hard linked

       -m     like --block-size=1M

       -P, --no-dereference
              don't follow any symbolic links (this is the default)

       -S, --separate-dirs
              for directories do not include size of subdirectories

       --si   like -h, but use powers of 1000 not 1024

       -s, --summarize
              display only a total for each argument

       -t, --threshold=SIZE
              exclude  entries smaller than SIZE if positive, or entries greater than SIZE
              if negative

       --time show time of the last modification of any file in the directory, or  any  of
              its subdirectories

       --time=WORD
              show time as WORD instead of modification time: atime, access, use, ctime or
              status

       --time-style=STYLE
              show times using STYLE, which can be: full-iso, long-iso, iso,  or  +FORMAT;
              FORMAT is interpreted like in 'date'

       -X, --exclude-from=FILE
              exclude files that match any pattern in FILE

       --exclude=PATTERN
              exclude files that match PATTERN

       -x, --one-file-system
              skip directories on different file systems

       --help display this help and exit

       --version
              output version information and exit

       Display  values are in units of the first available SIZE from --block-size, and the
       DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment  variables.   Otherwise,  units
       default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).

       The SIZE argument is an integer and optional unit (example: 10K is 10*1024).  Units
       are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).

PATTERNS
       PATTERN is a shell pattern (not a regular expression).  The pattern ?  matches  any
       one  character,  whereas  *  matches  any string (composed of zero, one or multiple
       characters).  For example, *.o will match any files whose names end in .o.   There‐
       fore, the command

              du --exclude='*.o'

       will skip all files and subdirectories ending in .o (including the file .o itself).

AUTHOR
       Written by Torbjorn Granlund, David MacKenzie, Paul Eggert, and Jim Meyering.

REPORTING BUGS
       GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
       Report du translation bugs to <http://translationproject.org/team/>

COPYRIGHT
       Copyright  © 2017 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3
       or later <http://gnu.org/licenses/gpl.html>.
       This is free software: you are free to change and redistribute  it.   There  is  NO
       WARRANTY, to the extent permitted by law.

SEE ALSO
       Full documentation at: <http://www.gnu.org/software/coreutils/du>
       or available locally via: info '(coreutils) du invocation'

GNU coreutils 8.28                     January 2018                                  DU(1)

简单介绍

du - estimate file space usage:估计文件空间使用情况。
Summarize disk usage of the set of FILEs, recursively for directories.:递归遍历目录。

默认设置(不指定文件夹、不带选项的情况下):

  • 默认情况下遍历当前目录下的所有文件和目录、以及子目录。相当于加了 -a
  • 容量表示磁盘使用量;单位为kb,相当于加了 --block-size=1k
  • 最后面会显示当前文件夹的总的大小。

举例:

$ du
……
40      ./03H5游戏/八款经典HTML5小游戏源码/08/js
20      ./03H5游戏/八款经典HTML5小游戏源码/08/src/views
89      ./03H5游戏/八款经典HTML5小游戏源码/08/src
4795    ./03H5游戏/八款经典HTML5小游戏源码/08
18476   ./03H5游戏/八款经典HTML5小游戏源码
19308   ./03H5游戏
82260   .

常用选项

与单位相关的选项

–apparent-size

print apparent sizes, rather than disk usage; although the apparent size is
usually smaller, it may be larger due to holes in (‘sparse’) files, internal
fragmentation, indirect blocks, and the like

显示文件的表面的大小,而不是默认的磁盘使用量(–block-size=1k)。一般情况下都会比磁盘使用量少,如果你有注意的话window的容量也是有两种显示的。

$ du  --max-depth=1 --apparent-size
19      ./.git
15163   ./00实用模板
13076   ./00登录模板
8666    ./01H5
2004    ./01H5-CSS3
9371    ./01H5-CSS3-3D
621     ./01H5-SVG
11226   ./02H5-Canvas
18598   ./03H5游戏
78742   .

$ du  --max-depth=1
48      ./.git
15970   ./00实用模板
13831   ./00登录模板
9069    ./01H5
2190    ./01H5-CSS3
9535    ./01H5-CSS3-3D
675     ./01H5-SVG
11623   ./02H5-Canvas
19308   ./03H5游戏
82260   .

-B, --block-size=SIZE

scale sizes by SIZE before printing them; e.g., ‘-BM’ prints sizes in units
of 1,048,576 bytes; see SIZE format below

The SIZE argument is an integer and optional unit (example: 10K is 10*1024). Units
are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,… (powers of 1000).
注:这里不区分大小写,如:K和k是一样的。

以什么单位显示块的大小。-B需要结合下面的选项一起使用。如:

$ du -BK --max-depth=1
48K     ./.git
15970K  ./00实用模板
13831K  ./00登录模板
9069K   ./01H5
2190K   ./01H5-CSS3
9535K   ./01H5-CSS3-3D
675K    ./01H5-SVG
11623K  ./02H5-Canvas
19308K  ./03H5游戏
82260K  .

$ du -BM --max-depth=1
1M      ./.git
16M     ./00实用模板
14M     ./00登录模板
9M      ./01H5
3M      ./01H5-CSS3
10M     ./01H5-CSS3-3D
1M      ./01H5-SVG
12M     ./02H5-Canvas
19M     ./03H5游戏
81M     .

长命令格式(和下面的效果一样):

$ du --max-depth=1 --block-size=1k
48      ./.git
15970   ./00实用模板
13831   ./00登录模板
9069    ./01H5
2190    ./01H5-CSS3
9535    ./01H5-CSS3-3D
675     ./01H5-SVG
11623   ./02H5-Canvas
19308   ./03H5游戏
82260   .

$ du --max-depth=1 --block-size=1m
1       ./.git
16      ./00实用模板
14      ./00登录模板
9       ./01H5
3       ./01H5-CSS3
10      ./01H5-CSS3-3D
1       ./01H5-SVG
12      ./02H5-Canvas
19      ./03H5游戏
81      .

-b, --bytes

equivalent to ‘–apparent-size --block-size=1’

(文件的表面大小)单位为字节。

-k

like --block-size=1K

单位为kb。

-m

like --block-size=1M

单位为mb。

与遍历深度相关的选项

-s, --summarize

display only a total for each argument

只显示当前目录的总的大小。

$ du --summarize
82260   .

-d, --max-depth=N

print the total for a directory (or file, with --all) only if it is N or
fewer levels below the command line argument; --max-depth=0 is the same as
–summarize

指定遍历深度,如果不指定表示遍历到底;如果是0,同--summarize只显示总大小;如果是1,表示只遍历当前目录,不递归遍历子目录(如果有的话)。

$ du --max-depth=0
82260   .

$ du --max-depth=1
48      ./.git
15970   ./00实用模板
13831   ./00登录模板
9069    ./01H5
2190    ./01H5-CSS3
9535    ./01H5-CSS3-3D
675     ./01H5-SVG
11623   ./02H5-Canvas
19308   ./03H5游戏
82260   .

-h, --human-readable

print sizes in human readable format (e.g., 1K 234M 2G)

形象的显示单位,使其更加易读。

$ du -h --max-depth=1
48K     ./.git
16M     ./00实用模板
14M     ./00登录模板
8.9M    ./01H5
2.2M    ./01H5-CSS3
9.4M    ./01H5-CSS3-3D
675K    ./01H5-SVG
12M     ./02H5-Canvas
19M     ./03H5游戏
81M     .

常用案例介绍

1.直观地显示当前目录文件大小:du -sh

$ du -sh
81M     .

2.直观地显示当前目录文件内所有文件大小,不递归:du -h --max-depth=1

$ du -h --max-depth=1
48K     ./.git
16M     ./00实用模板
14M     ./00登录模板
8.9M    ./01H5
2.2M    ./01H5-CSS3
9.4M    ./01H5-CSS3-3D
675K    ./01H5-SVG
12M     ./02H5-Canvas
19M     ./03H5游戏
81M     .

3.指定文件/文件夹du file

$ ls
00登录模板/  01H5/       01H5-CSS3-3D/  02H5-Canvas/  LICENSE.txt
00实用模板/  01H5-CSS3/  01H5-SVG/      03H5游戏/     README.md

# 指定文件
$ du LICENSE.txt
4       LICENSE.txt

# 指定文件夹
du 01H5/
……
260     01H5/html5音乐播放器音频播放代码/img
96      01H5/html5音乐播放器音频播放代码/js
196     01H5/html5音乐播放器音频播放代码/mp3
609     01H5/html5音乐播放器音频播放代码
1       01H5/火花文字动画html5_css3_wenzdh/css
12      01H5/火花文字动画html5_css3_wenzdh/js
18      01H5/火花文字动画html5_css3_wenzdh
9069    01H5/

4.显示文件夹内所有文件大小du -a

如果不加-a,默认情况下只显示文件夹大小,不显示文件大小。

# -a, --all             write counts for all files, not just directories
# 显示所有文件的大小,而不仅仅是文件夹
$ du -ah
1.4M    ./1.5.0-阿里巴巴Java开发手册(华山版).pdf
76K     ./CollectHomework/CollectHomework-1.jpg
128K    ./CollectHomework/CollectHomework-2.jpg
204K    ./CollectHomework
56K     ./hello-word/github-bootstrap语言识别情况.jpg
20K     ./hello-word/github-hello-world1语言识别情况.jpg
28K     ./hello-word/github-hello-world2语言识别情况.jpg
12K     ./hello-word/github-hello-world语言识别情况.jpg
64K     ./hello-word/github语言识别情况.jpg
52K     ./hello-word/hello-world-github.png
16K     ./hello-word/hello-world-github1.png
252K    ./hello-word
1.9M 

5.排除某文件du --exclude=""

如果不加路径参数,默认是查询当前文件夹的文件大小。

你也可以指定具体的文件(夹),就像这样:du -sh ./test/ ,查看test文件夹大小。

当然你也可以排除具体的文件(夹),就像这样:du -sh --exclude="./test/" ,当前目录的排除test文件夹后的其余文件的大小。


这篇文章也分享了一些案例:https://blog.csdn.net/learner198461/article/details/54602324

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux查看文件大小的命令du的简单介绍 的相关文章

  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 将 PDF 转换为 600dpi 的 TIFF 和 jpg 96 dpi

    我想使用 ImageMagick 从 Python 脚本将 pdf 转换为 600 dpi 的 tiff 和 96 dpi 的 jpg 我使用 imagemagick 命令行完成了这项任务 但我想使用python中的Imagemagick将
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • docker容器大小远大于实际大小

    我正在尝试从中构建图像debian latest 构建后 报告的图像虚拟大小来自docker images命令为 1 917 GB 我登录查看尺寸 du sh 大小为 573 MB 我很确定这么大的尺寸通常是不可能的 这里发生了什么 如何获
  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute
  • 如何在 Bash 中给定超时后终止子进程?

    我有一个 bash 脚本 它启动一个子进程 该进程时不时地崩溃 实际上是挂起 而且没有明显的原因 闭源 所以我对此无能为力 因此 我希望能够在给定的时间内启动此进程 如果在给定的时间内没有成功返回 则将其终止 有没有simple and r
  • 我不明白 execlp() 在 Linux 中如何工作

    过去两天我一直在试图理解execlp 系统调用 但我还在这里 让我直奔主题 The man pageexeclp 将系统调用声明为int execlp const char file const char arg 与描述 execl exe
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 使用 Grep 查找两个短语之间的文本块(包括短语)

    是否可以使用 grep 来高亮所有以以下内容开头的文本 mutablePath CGPathCreateMutable 并以以下内容结尾 CGPathAddPath skinMutablePath NULL mutablePath 这两个短
  • 确定我可以向文件句柄写入多少内容;将数据从一个 FH 复制到另一个 FH

    如何确定是否可以将给定数量的字节写入文件句柄 实际上是套接字 或者 如何 取消读取 我从其他文件句柄读取的数据 我想要类似的东西 n how much can I write w handle n read r handle buf n a
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • 监控子进程的内存使用情况

    我有一个 Linux 守护进程 它分叉几个子进程并监视它们是否崩溃 根据需要重新启动 如果父进程可以监视子进程的内存使用情况 以检测内存泄漏并在超出一定大小时重新启动子进程 那就太好了 我怎样才能做到这一点 您应该能够从 proc PID
  • 捕获实时流量时如何开启纳秒精度?

    如何告诉 libpcap v1 6 2 将纳秒值存储在struct pcap pkthdr ts tv usec 而不是微秒值 捕获实时数据包时 Note This question is similar to How to enable
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两

随机推荐

  • 【原创】【硬件电路】N沟道、P沟道MOS管基本原理与应用案例

    文章首发于同名微信公众号 DigCore 欢迎关注同名微信公众号 DigCore 及时获取最新技术博文 一 N MOS管和P MOS管的对比 二 N MOS的开关条件 N MOS管的导通调节是G极与S极中间的电压差超过阈值时 D极和S极导通
  • C语言中printf("lld")和printf("I64d")

    C语言中printf lld 和printf I64d 是不同的 这个是因为编译器的不同导致的 所以广大的ACMer需要注意了 HDU OJ 4504就是这样的一个问题 下面是Dp和math方法的AC代码 但是换成lld全都Wrong An
  • 二级空间配置器

    一级空间配置器 https blog csdn net qq 37964547 article details 80474316 一 二级空间配置器 在前面文章中我们介绍了一级空间配置器的概念和实现 一级空间配置器的实现相对比较简单 直接封
  • 操作系统教程第六版——3.3页式存储管理笔记

    一 引入页式存储管理的目的 1 减少碎片 纯分页系统 2 只在内存存放那些反复执行或即将执行的程序段与数据部分 而把那些不经常执行的程序段和数据存放于外存待执行时调入 以提高内存利用率而提出来的 页式虚拟存储 请求分页系统 二 基本思想 1
  • 【报错】RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling `cublasLtMatmul( ltHandle,

    在GPU上运行hugging face transformer的时候出现如下报错 RuntimeError CUDA error CUBLAS STATUS EXECUTION FAILED when calling cublasLtMat
  • 【Android】JUnit和Espresso单元测试新手快速入门

    引入依赖 android defaultConfig testInstrumentationRunner androidx test runner AndroidJUnitRunner dependencies testImplementa
  • JavaScript 中的模块化

    封面图说明 Michael J Kochniss mjk photo de instagram com mjk photo 在早期 JavaScript 程序主要用来实现一些页面上的动画或者简单的交互 所以程序不会太复杂 页面也不会有太多的
  • 【满分】【华为OD机试真题2023 JS】优秀学员统计

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 优秀学员统计 知识点排序统计编程基础 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 公司某部门软件教导团正在组织新员工每日打卡学习活动 他们开展这项学习活动已经
  • 说说React中setState执行机制?

    setState是异步的 1 调用setState是不会立即更新的 2 所有组件使用的是同一套更新机制 当所有组件didmount之后 父组件didmount 然后统一执行更新 3 更新时会把每个组件的更新合并 每个组件只会触发一次更新后的
  • 合肥工业大学 软件学院 软件质量保证与测试 第九章 软件测试

    文章目录 第九章 软件测试 1 软件测试概述 1 1 软件测试的定义 1 2 软件测试的目的 2 软件测试过程 3 软件测试类型 3 1 单元测试 3 2 集成测试 测试方法 3 3 系统测试 3 4 验收测试 3 5 回归测试 3 6 补
  • 高通功耗调试16之连接BT待机功耗大问题分析(Android P)

    问题背景 Android P上Google修改了BT的代码 在待机时允许modem上报网络信号强度给AP 因此连接BT待 机时AP会被频繁唤醒 导致待机功耗增加 问题解决 问题分析请参考KBA 190212004248 适用平台 ALL A
  • iOS安全攻防—目录

    The most difficult thing to do in a strange city is not to forget why you started the trip 在光怪陆离的城市拼尽全力 最难的是勿忘初心 一 工具篇 C
  • 响应式网页设计初探

    我首次接触响应式网页设计还要从应用bootstrap说起 我们运用bootstrap的网格类简单的将响应式设计带入我们的网页设计当中 当然bootstrap框架其实还做了其他事情以支持网页响应式设计 现在 就让我们一窥响应式网页设计背后的原
  • 【工具使用】Spyder代码补全问题

    我的Spyder突然不能够进行自动补全了 试了以下几种方法 1 如下图操作 但是没有任何用 2 在anaconda控制台输入pip list 查看安装了哪些包 如果存在enum34 则删除 pip uninstall enum34 重启sp
  • 利用偏函数设计学习率下降方式

    Python partial 首先 我们需要简单了解下偏函数的作用 和装饰器一样 它可以扩展函数的功能 但又不完成等价于装饰器 通常应用的场景是当我们要频繁调用某个函数时 其中某些参数是已知的固定值 通常我们可以调用这个函数多次 但这样看上
  • IP代理

    IP作为互联网的重要的桥梁 是计算机网络相互连接进行通信而设计的协议 正是因为有了P协议 因特网才得以迅速发展成为庞大的 开放的计算机通信网络 IP代理中常常可以看到IPv4与IPv6 今天就给各位跨境老板详细解释 他们是什么 如何选择 一
  • 计算机大四找不到工作怎么办?应届生如何找到合适的工作?

    计算机大四找不到工作怎么办呢 金三银四的到来 很多大四计算机专业学生最近很是焦虑 自己在校成绩不够突出 技术实力也是平平 投递了很多企业迟迟得不到反馈 眼看着毕业季越来越靠近 身边同学都已获得大厂offer 而自己手上一个offer都没有
  • Mac电脑M1芯片Python环境搭建

    一 安装miniforge 1 从github中下载miniforge 也可以在我的阿里云盘中下载miniforge 提取密码为 R6pb 2 打开终端 找到下载的文件的位置 进行安装 进入下载位置 cd XXX Downloads lis
  • flutter 打包安装后闪退问题

    问题 升级flutter插件后 生成release版apk 安装到手机启动flutter代码时出现闪退问题 log日志回报一系列的so库错误 原因 具体原因我不知道到什么原理造成 个人理解的应该是flutter sdk 版本问题 解决 在a
  • Linux查看文件大小的命令du的简单介绍

    文章目录 官方介绍 简单介绍 常用选项 与单位相关的选项 apparent size B block size SIZE b bytes k m 与遍历深度相关的选项 s summarize d max depth N h human re