Linux 中可以通过 ls -l 或者 find -type f 来统计文件、文件夹的个数,具体操作如下。
ls -l | grep "^-" | wc -l
# ls -l 列出文件及文件夹
# "^-" 以-开头的行 文件以-开头 文件夹以d开头
# wc -l 统计行数
或者可以:
find ./ -type f | wc -l
# ./ 在当前目录查找
# -type f 文件类型
# wc -l 统计行数
ls -lR | grep "^-" | wc -l
# -R 递归列出子目录的文件
ls -lR | grep "^d" | wc -l
# "^d" 以d开头的行
使用 du、df、free 进行统计,详细见下。
Linux du 命令用于显示目录或文件的大小。
du 会显示指定的目录或文件所占用的磁盘空间。
语法:
du [-abcDhHklmsSx] [目录或文件]
参数说明:
实例:
du -h * # 显示当前目录下文件的大小
du -sh # 查看当前文件夹大小
du -sh * | sort -nr # 统计当前文件夹(目录)大小,并按文件大小排序 -- 加了-h之后排序有问题
du -sk filename # 查看指定文件大小
使用 sort 的参数 -nr 表示要以数字排序法进行反向排序,因为我们要对目录大小做排序,所以不可以使用 human-readable 的大小输出,不然目录大小中会有 K、M 等字样,会造成排序不正确。
如果有一个进程在打开一个大文件的时候,这个大文件直接被 rm 或者mv 掉,则 du 会更新统计数值,df 不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。
Linux df 命令显示磁盘分区上可以使用的磁盘空间。
两者配合使用,非常有效。
比如用 df 查看哪个一级目录过大,然后用 du 查看文件夹或文件的大小,如此便可迅速确定症结。
语法:
df [选项] [file]
参数说明:
有的时候虽然档案系统还有空间,但若没有足够的 inode 来存放档案的信息,一样会不能增加新的档案。
所谓的 inode 是用来存放档案及目录的基本信息 (metadata),包含时间、档名、使用者及群组等。在分割扇区时,系统会先做出一堆 inode 以供以后使用,inode 的数量关系着系统中可以建立的档案及目录总数。如果要存的档案大部分都很小,则同样大小的硬盘中会有较多的档案,也就是说需要较多的 inode 来挂档案及目录。
实例:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 3.9G 300M 3.4G 8% /
/dev/sda7 100G 188M 95G 1% /data0
/dev/sdb1 133G 80G 47G 64% /data1
/dev/sda6 7.8G 218M 7.2G 3% /var
/dev/sda5 7.8G 166M 7.2G 3% /tmp
/dev/sda3 9.7G 2.5G 6.8G 27% /usr
tmpfs 2.0G 0 2.0G 0% /dev/shm
FreeBSD下,当硬盘容量已满时,可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
Linux free 命令可以显示 Linux 系统中空闲的、已用的物理内存及交互区内存(swap),及被内核使用的 buffer(内核缓冲区内存)。共享内存将被忽略。
语法:
free [参数]
total used free shared buffers cached
Mem: 32948032 32767416 180616 0 139960 29878896
-/+ buffers/cache: 2748560 30199472
Swap: 8193140 664956 7528184
参数说明:
参考链接:linux查看文件夹大小、文件个数的方法
原文:https://www.cnblogs.com/hider/p/12098157.html