居然这样获取 Linux 系统目录大小,我佛了~

本文介绍了Linux系统中,ls命令显示的目录大小仅为4KB,因为它们仅表示元信息占用的空间。文章详细讲解了如何使用du命令来获取文件目录的实际大小,包括查看指定目录总大小、每个目录和文件大小、一级子目录大小以及包含统计功能的目录大小。通过示例展示了du命令的不同选项如-h、-s、--max-depth、-S和-c的用法。
摘要由CSDN通过智能技术生成

大家好,我是良许。

 

使用过 Linux 系统的小伙伴都知道应该都知道, Linux 系统下的 ls 命令通常被我们用来查看文件目录的内容,但是不知道大家有没有细心留意,ls 命令所显示出来的每一个目录的大小竟然都只有 4 KB ?

$ ls -lh | grep ^d

drwxr-xr-x  3 alvin alvin 4.0K Aug  2 13:57 Bank_Details
drwxr-xr-x  2 alvin alvin 4.0K Mar 15  2019 alvin
drwxr-xr-x  6 alvin alvin 4.0K Feb 16  2019 drive-alvin
drwxr-xr-x 13 alvin alvin 4.0K Jan  6  2019 drive-mageshm
drwxr-xr-x 15 alvin alvin 4.0K Sep 29 21:32 Thanu_Photos

其实啊,这是因为 Linux 下一切皆文件,相信大家都听过这句话,所以你看到的 4 KB 只是用于存储目录元信息的文件大小而已,并不是我们通常意义上的目录大小。那么问题来了,如何去获取到文件目录的实际大小呢?别急,Linux 下的 du 命令可以帮到你。

du 是英文 disk usage 的缩写,代表磁盘使用率,它是一个标准的 Unix 程序,用于估算当前工作目录中文件空间的使用情况。

下面将以  /home/alvin/Documents 为例,来介绍 du 命令的使用。

查看指定目录的总大小

$ du -hs /home/alvin/Documents
or
$ du -h --max-depth=0 /home/alvin/Documents/

20G    /home/alvin/Documents

上面两种方式都可以算出目标目录的总大小,其中:

  • -h 表示显示成 K、M、G 等大小格式

  • -s 表示显示总和

  • --max-depth=N 表示目录级别为 N

查看指定目录下每个目录(包括子目录)的大小

将 -s 选项去掉,不进行统计总和,就能显示每一个目录的大小了,以下仅显示前 20 条:

$ du -h /home/alvin/Documents/ | sort -rh | head -20

20G    /home/alvin/Documents/
9.6G    /home/alvin/Documents/drive-alvin
6.3G    /home/alvin/Documents/Thanu_Photos
5.3G    /home/alvin/Documents/Thanu_Photos/Camera
5.3G    /home/alvin/Documents/drive-alvin/Thanu-videos
3.2G    /home/alvin/Documents/drive-mageshm
2.3G    /home/alvin/Documents/drive-alvin/Thanu-Photos
2.2G    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month
916M    /home/alvin/Documents/drive-mageshm/Tanisha
454M    /home/alvin/Documents/drive-mageshm/2g-backup
415M    /home/alvin/Documents/Thanu_Photos/WhatsApp Video
300M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Jan-2017
288M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Oct-2017
226M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Sep-2017
219M    /home/alvin/Documents/Thanu_Photos/WhatsApp Documents
213M    /home/alvin/Documents/drive-mageshm/photos
163M    /home/alvin/Documents/Thanu_Photos/WhatsApp Video/Sent
161M    /home/alvin/Documents/Thanu_Photos/WhatsApp Images
154M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/June-2017
150M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Nov-2016

查看指定目录下每个文件和目录的大小

结合通配符 * 的使用,可以实现显示出指定目录下的文件和目录的大小信息的效果:

$ du -hs /home/alvin/Documents/* | sort -rh | head -10

9.6G    /home/alvin/Documents/drive-alvin
6.3G    /home/alvin/Documents/Thanu_Photos
3.2G    /home/alvin/Documents/drive-mageshm
756K    /home/alvin/Documents/Bank_Details
272K    /home/alvin/Documents/user-friendly-zorin-os-15-has-been-released-TouchInterface1.png
172K    /home/alvin/Documents/user-friendly-zorin-os-15-has-been-released-NightLight.png
164K    /home/alvin/Documents/ConfigServer Security and Firewall (csf) Cheat Sheet.pdf
132K    /home/alvin/Documents/user-friendly-zorin-os-15-has-been-released-Todo.png
112K    /home/alvin/Documents/user-friendly-zorin-os-15-has-been-released-ZorinAutoTheme.png
96K    /home/alvin/Documents/distro-info.xlsx

查看指定目录下的每个目录的大小(排除子目录)

使用 -S 选项,以排除子目录的形式来统计大小:

$ du -hS /home/alvin/Documents/ | sort -rh | head -20

5.3G    /home/alvin/Documents/Thanu_Photos/Camera
5.3G    /home/alvin/Documents/drive-alvin/Thanu-videos
2.3G    /home/alvin/Documents/drive-alvin/Thanu-Photos
1.5G    /home/alvin/Documents/drive-mageshm
831M    /home/alvin/Documents/drive-mageshm/Tanisha
454M    /home/alvin/Documents/drive-mageshm/2g-backup 
300M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Jan-2017
288M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Oct-2017
253M    /home/alvin/Documents/Thanu_Photos/WhatsApp Video
226M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Sep-2017
219M    /home/alvin/Documents/Thanu_Photos/WhatsApp Documents
213M    /home/alvin/Documents/drive-mageshm/photos
163M    /home/alvin/Documents/Thanu_Photos/WhatsApp Video/Sent
154M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/June-2017
150M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Nov-2016
127M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Dec-2016
100M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Oct-2016
94M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Nov-2017
92M    /home/alvin/Documents/Thanu_Photos/WhatsApp Images
90M    /home/alvin/Documents/drive-alvin/Thanu-photos-by-month/Dec-2017

查看指定目录中的一级子目录的大小

这个就很简单了,将 max-depth 设定为 1 就可以了:

$ du -h --max-depth=1 /home/alvin/Documents/

3.2G    /home/alvin/Documents/drive-mageshm
4.0K    /home/alvin/Documents/alvin
756K    /home/alvin/Documents/Bank_Details
9.6G    /home/alvin/Documents/drive-alvin
6.3G    /home/alvin/Documents/Thanu_Photos
20G    /home/alvin/Documents/

查看指定目录的大小(包含统计功能)

使用 -c 选项能够对结果进行统计,可以看到,指定目录下的文件和目录的大小的总和是 20 G,这和上面第一条命令中所得出的 /home/alvin/Documents/ 的大小 20 G 是一致的:

$ du -hsc /home/alvin/Documents/* | sort -rh | head -10

20G    total
9.6G    /home/alvin/Documents/drive-alvin
6.3G    /home/alvin/Documents/Thanu_Photos
3.2G    /home/alvin/Documents/drive-mageshm
756K    /home/alvin/Documents/Bank_Details
272K    /home/alvin/Documents/user-friendly-zorin-os-15-has-been-released-TouchInterface1.png
172K    /home/alvin/Documents/user-friendly-zorin-os-15-has-been-released-NightLight.png
164K    /home/alvin/Documents/ConfigServer Security and Firewall (csf) Cheat Sheet.pdf
132K    /home/alvin/Documents/user-friendly-zorin-os-15-has-been-released-Todo.png
112K    /home/alvin/Documents/user-friendly-zorin-os-15-has-been-released-ZorinAutoTheme.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值