zoukankan      html  css  js  c++  java
  • Linux学习笔记:查看文件大小、文件个数

    文件、文件夹个数统计

    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 进行统计,详细见下。

    du 详解

    Linux du 命令用于显示目录或文件的大小。

    du 会显示指定的目录或文件所占用的磁盘空间。

    语法:

    du [-abcDhHklmsSx] [目录或文件]
    

    参数说明:

    • -a 或 -all:显示目录中文件的大小,单位 KB
    • -b:显示目录中文件的大小,以字节 byte 为单位
    • -c:显示目录中文件的大小,同时显示总和,单位 KB
    • -k:显示目录中文件的大小,单位 KB
    • -m:显示目录中文件的大小,单位 MB
    • -s:仅显示目录的总值,单位 KB
    • -h:--human-readable 以K,M,G为单位,提高信息的可读性。
    • -x:以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
    • -H:--si 与 -h参数相同,但是 K、M、G是以1000为换算单位
    • --max-depth = 1 :遍历深度

    实例:

    du -h * # 显示当前目录下文件的大小
    du -sh # 查看当前文件夹大小
    du -sh * | sort -nr # 统计当前文件夹(目录)大小,并按文件大小排序 -- 加了-h之后排序有问题
    du -sk filename # 查看指定文件大小
    

    使用 sort 的参数 -nr 表示要以数字排序法进行反向排序,因为我们要对目录大小做排序,所以不可以使用 human-readable 的大小输出,不然目录大小中会有 K、M 等字样,会造成排序不正确。

    如果有一个进程在打开一个大文件的时候,这个大文件直接被 rm 或者mv 掉,则 du 会更新统计数值,df 不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。

    df 详解

    Linux df 命令显示磁盘分区上可以使用的磁盘空间。

    • df 可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
    • du可以查看文件及文件夹的大小。

    两者配合使用,非常有效。

    比如用 df 查看哪个一级目录过大,然后用 du 查看文件夹或文件的大小,如此便可迅速确定症结。

    语法:

    df [选项] [file]
    

    参数说明:

    • -a: --all 包含所有的具有 0 Blocks 的文件系统,单位默认 KB
    • -h:使用 -h 选项以 KB、MB、GB 的单位来显示,可读性高~~~(最常用)
    • -i:查看目前档案系统 inode 的使用情形

    有的时候虽然档案系统还有空间,但若没有足够的 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
    
    • Filesystem -- 档案系统
    • Mounted on -- 挂入点
    • size -- 分区容量
    • Used -- 已使用的大小
    • Avail -- 剩下的大小
    • Use% -- 使用的百分比

    FreeBSD下,当硬盘容量已满时,可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。

    free 详解

    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
    

    参数说明:

    • -b:以 Byte 为单位显示内存使用情况
    • -k:以 KB 为单位显示内存使用情况
    • -m:以 MB 为单位显示内存使用情况
    • -g:以 GB 为单位显示内存使用情况
    • -t:显示内存综合列

    参考链接:linux查看文件夹大小、文件个数的方法

    参考链接2:linux之ls -l|grep "^-"|wc -l命令

    参考链接3:Linux中 du (详解)、 df (详解)和 free(详解)以及它们的区别

  • 相关阅读:
    android自定义Activity窗体大小
    Android UI设计--半透明效果对话框及activity(可做遮罩层)
    Android借助Handler,实现ViewPager中页面的自动切换(转)
    Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
    阅读(1)
    Android 之 下拉框(Spinner)的使用-转
    android中自定义下拉框(转)
    androidwebview网页显示事件
    androidwebview timeout
    android开源框架
  • 原文地址:https://www.cnblogs.com/hider/p/12098157.html
Copyright © 2011-2022 走看看