你应该已经注意到,在 Linux 中使用 ls 命令 列出的目录内容中,目录的大小仅显示 4KB。这个大小正确吗?如果不正确,那它代表什么,又该如何获取 Linux 中的目录或文件夹大小?这是一个默认的大小,是用来存储磁盘上存储目录的元数据的大小。
子洲网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。成都创新互联2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
Linux 上有一些应用程序可以 获取目录的实际大小 。其中,磁盘使用率(du)命令已被 Linux 管理员广泛使用。
我将向您展示如何使用各种选项获取文件夹大小。
du 命令 表示 磁盘使用率(Disk Usage)。这是一个标准的 Unix 程序,用于估计当前工作目录中的文件空间使用情况。
它使用递归方式总结磁盘使用情况,以获取目录及其子目录的大小。
如同我说的那样, 使用 ls 命令时,目录大小仅显示 4KB。参见下面的输出。
使用以下 du 命令格式获取给定目录的总大小。在该示例中,我们将得到 /home/daygeek/Documents 目录的总大小。
详细说明:
使用以下 du 命令格式获取每个目录(包括子目录)的总大小。
在该示例中,我们将获得每个 /home/daygeek/Documents 目录及其子目录的总大小。
使用如下 du 命令格式仅获取每个目录的摘要。
使用如下 du 命令格式来展示每个目录的总大小,不包括子目录。
如果要获取 Linux 上给定目录的一级子目录(包括其子目录)的大小,请使用以下命令格式。
如果要在 du 命令输出中获得总计,请使用以下 du 命令格式。
via:
作者: Magesh Maruthamuthu 选题: lujun9972 译者: lnrCoder 校对: wxy
du -ah --max-depth=1 这个是我想要的结果 a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。
du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh
一、du的功能: `du` reports the amount of disk space used by the specified files and for each subdirectory (of directory arguments). with no arguments,`du` reports the disk space for the current directory。
很明显,与df不同,它用来查看文件或目录所占用的磁盘空间的大小。
二、du常用的选项:
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L:统计符号链接所指向的文件占用的磁盘空间大小
一、du -h:这个就不多说了。
二、du -a:使用此选项时,显示目录和目录下子目录和文件占用磁盘空间的大小。
可以看出,默认情况下du只显示download目录占用磁盘空间的大小,而使用-a选项后,它不仅显示了目录(最后一行),而且显示了目录下各个文件占用磁盘空间的大小。
三、du -s:使用此选项时,du只显示目录所占用磁盘空间的大小,而不显示其下子目录和文件占用磁盘空间的信息。
默认情况下,du不显示目录下文件占用磁盘空间的信息,但它会显示其下子目录占用磁盘空间的信息;而使用-s选项以后,只显示xx目录占用磁盘空间的大小。
四、du --apparent-size: 显示文件或目录自身大小,而不是它们占用的磁盘空间大小。文件或目录占用磁盘空间的大小与它们自身大小有时候并非完全一致;这种现象非linux所独有,windows里也是如此。我们看这个选项的帮助文档的解释:The apparent size of a file is the number of bytes reported by `wc –c` regular files ,or more generally, `ls –l –block-size=1` or `stat –format=%s`.For example, a file containing the word `zoo` with no newline would, of course, have an apparent size of 3. Such a small file may require anywhere from 0 to 16 kib or more of disk space, depending on the type and configuration of the file system on which the file resides.
这段话给出了文件或目录自身大小与占用磁盘空间大小的区别。他下面举出了一个更加夸张的例子,这里就不把它写出来了。我们知道了:wc或ls --block-size显示的是其自身大小,而du给出的则是占用的磁盘空间的大小。
五、du -c:使用此选项时,不仅显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和。
如图所示,加上-c选项后,du不仅显示两个目录各自占用磁盘空间的大小,还在最后一行统计它们的总和。
六、du -l:这个选项主要是针对硬链接。 在统计目录占用磁盘空间大小时,-l选项会把硬链接也统计进来。帮助文档是这样解释的:Count the size of all files,even if they have appeared already(as a hard link)。
我们在download目录下建立一个硬链接,指向本目录下的一个文件。不使用-l选项时,du发现硬链接指向本目录下的文件,于是自动忽略该链接文件,以免造成重复统计;使用-l选项,du才会把硬链接文件也统计进来。
七、du -L:这个选项主要是针对符号链接。 它会把符号链接所指向的文件占用磁盘空间的大小也统计进来。帮助文档是这样解释的:Dereference symbolic links(show the disk space used by the file or directory that the link points to instead of the space used by the link)。
我们在download目录下创建一个符号链接,指向本目录下的一个文件。我们看到上面图片中显示的操作结果,当使用-L选项时,du会把符号链接所指向的文件的大小也统计到目录里来。
另外我们看du -lh的结果,与du -h相同,好像没有统计出符号链接的大小;其实并非如此。从实际操作来看,符号链接本身似乎并不占用磁盘空间,所以才出现上述情况。
最后,du命令在统计目录占用磁盘空间时,默认不统计链接文件(无论是硬链接或是符号链接),所以要用-l和-L选项特地指出来;此外,du命令默认不显示目录下文件占用磁盘空间的信息,但是却默认显示其下子目录所占用磁盘空间的信息。怪哉。
du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量
du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。
以上这篇linux下使用 du查看某个文件或目录占用磁盘空间的大小方法就是我分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。
通过命令du-h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。查询当前目录总大小可以使用du -sh,其中s代表统计汇总的意思,即只输出一个总和大小。
Linux
全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。
df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式:
df -hl
显示格式为:
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot
/dev/hda6 4.9G 2.2G 2.5G 47% /home
/dev/hda5 9.7G 2.9G 6.4G 31% /opt
none 1009M 0 1009M 0% /dev/shm
/dev/hda3 9.7G 7.2G 2.1G 78% /usr/local
/dev/hdb2 75G 75G 0 100% /
/dev/hdb2 75G 75G 0 100% /
以上面的输出为例,表示的意思为:
HD硬盘接口的第二个硬盘(b),第二个分区(2),容量是75G,用了75G,可用是0,因此利用率是100%, 被挂载到根分区目录上(/)。
下面是相关命令的解释:
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
更多功能可以输入一下命令查看:
df --help
du --help
查看linux文件目录的大小和文件夹包含的文件数
统计总数大小
du -sh xmldb/
du -sm * | sort -n //统计当前目录大小 并安大小 排序
du -sk * | sort -n
du -sk * | grep guojf //看一个人的大小
du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字
查看此文件夹有多少文件 /*/*/* 有多少文件
du xmldb/
du xmldb/*/*/* |wc -l
linux查看目录大小及硬盘大小的命令:
#
du
-ks
---in
all
#
du
-k
---every
last
du和df命令都被用于获得文件系统大小的信息:df用于报告文件系统的总块数及剩余块数,du
-s
/用于报告文件系统使用的块数。但是,我们可以发现从df命令算出的文件系统使用块数的值与通过du命令得出的值是不一致的。如下例:
#
du
-s
/tmp
返回如下值:
---12920
/tmp
而
df
/tmp返回如下值:
Filesystem
--512-blocks--
Free
--%Used
--Iused--
%Iused
--Mounted
on
/dev/hd3
--------57344
--42208---
26%
----391
------4%
--/tmp
从上面的值我们可以算出
-
=
:
57344
-
42208
=
15136.
而15136大于12920。该值差异的存在是由于du与df命令实施上的不同:
du
-s命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数;而df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。
文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta
Data。
du命令是用户级的程序,它不考虑Meta
Data,而df命令则查看文件系统的磁盘分配图并考虑Meta
Data。df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。例如,一个frag=4096
并且
nbpi=4096的空的大小为4MB的日志文件系统中Meta
Data的分配情况如下:
1
4k
block
for
the
LVM
2
4k
super
blocks
2
4k
blocks
for
disk
maps
2
4k
blocks
for
inode
maps
2
4k
blocks
for
.indirect
32
4k
blocks
for
inodes
-------------------------
41
4k
blocks
for
meta
data
on
an
empty
4MB
file
system
对于AIX
4.X版本:
执行
du
/foo返回的结果如下:
----8
-------/foo/lost+found
----16
------/foo
要使du命令输出的结果与df命令输出的结果匹配,我们必须要加上Meta
Data。首先,将41个4k的块转换为以512字节为单位的值:
41
*
8
=
328
328(meta
data)
+
16(from
du)
=
344
所以有344个以512字节为单位的块分配给了这个空的文件系统。
而使用
df
/foo命令我们可以得到下面的结果:
Filesystem
--512-blocks
--Free
--%Used
--Iused---%Iused
--Mounted
on
/dev/lv01
------8192
-----7848
-----5%
-----16
-----2%
----/foo
从中我们可以得到该文件系统使用的块数:8192(total
blocks)
-
7848(free
blocks)
=
344。该值与上面得出的值一致。
上面的换算方法对于空的文件系统很容易实现,但是对于非空的文件系统,由于Meta
Data中文件间接块的大小不定,因此较难实现。所以我们不需要查看du
与
df返回的值的匹配关系,而只需要了解du
-s命令返回的值反映了分配给文件及目录的磁盘块数,而df命令则反映了文件系统的实际分配情况。df命令反映的实际情况包含了用户数据(文件及目录)和Meta
Data。
另一个表现出du与df命令不同之处的例子如下:
如果用户删除了一个正在运行的应用所打开的某个目录下的文件,则du命令返回的值显示出减去了该文件后的目录的大小。但df命令并不显示减去该文件后的大小。直到该运行的应用关闭了这个打开的文件,df返回的值才显示出减去了该文件后的文件系统的使用情况。
列出一个目录占用的空间
1. du或du
-s或du
-k
du
-S
|
sort
-n
可以迅速发现那个目录是最大的。
2. 用df可以看到已安装的文件系统的空间大小及剩余空间大小。
3. quota
-v查看用户的磁盘空间信息,如果你用quota限制了用户空间大小的话。
1、最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。
2、通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。
3、查询当前目录总大小可以使用du -sh,其中s代表统计汇总的意思,即只输出一个总和大小。
4、同样,通过命令du -h –max-depth=0 *,可以只显示直接子目录文件及文件夹大小统计值。
5、如果只想查看指定目录的总大小,可以使用du -sh 目录名称。
6、对于指定文件夹也可以指定显示层次深度,如du -h --max-depth=0 software/及du -h --max-depth=1 software/