Linux中文件大小查看和数量统计

在Linux中,可以使用`lsblk`和`df-h`命令查看磁盘分区和使用率,用`du`命令及选项分析文件和目录的大小,结合`awk`和`wc-l`计算总和或文件数量。文章还提到了如何处理隐藏文件和计算目录中的文件数量。

1. 如何看磁盘分区和使用率

在 Linux 中,有多种命令可以查看磁盘分区情况,其中常用的命令如下:

命令说明
lsblk该命令用于显示所有块设备,包括磁盘和它们的分区。执行该命令后,会列出所有磁盘的设备名、磁盘大小、分区情况等信息
df -h该命令用于查看所有已经挂载的文件系统的使用情况。执行该命令后,会显示所有文件系统的挂载点、总大小、已使用大小和可用大小等信息
df -h ./test查看test文件夹的挂载情况
fdisk -l该命令用于查看硬盘分区和分区表信息。执行该命令后,会列出所有硬盘的每个分区的详细信息,如设备名、大小、起始和结束扇区等
parted -l该命令是比较强大的分区工具,可以创建、删除、调整分区等。可以使用 parted 命令交互式的方式进行操作,也可以直接显示分区信息
parted /dev/sda进入交互模式,操作 sda 磁盘

df命令

使用 df 命令时,可以通过 -h 选项以人类可读的方式显示文件大小,例如 KB、MB、GB 等。但是 -h 选项默认情况下只能以较小的单位 (例如 KB、MB)显示文件大小,如果想要以较大的单位 (例如 GB)显示文件大小,则需要使用 -BG 选项。

若要以 M 或 G 的方式显示 df ./ 命令的结果,可以使用以下命令:

df -BM .
df -BG .

2. 文件大小查看

在 Linux 中,可以使用 du 命令来查看当前目录下文件或文件夹的大小。du 命令的语法格式一般为:

du [选项] [路径]

常用的选项包括:

  • -h:以人类可读的方式显示文件大小,例如 KB、MB、GB 等;
  • -s:仅显示总大小,不显示每个文件和目录的大小;
  • -c:显示总大小,并在最后一行显示总和。

以下是几个常用的查看当前目录文件或文件夹大小的命令实例:

项目Value
du -h查看当前目录下所有文件或文件夹的大小
du -sh */查看当前目录下的子目录大小,不显示每个文件的大小
du -h test/查看当前目录下某个文件夹的大小。例如,查看当前目录下名为 test 的文件夹大小

查看当前目录下每个文件或文件夹的大小,并显示总和:

du -h | awk '{total += $1} END {print "总大小:", total "MB"}'
//注意是否需要除以1024
du -h | awk '{total += $1} END {print "总大小:", total/1024/1024 "MB"}'

其中,awk 命令用于计算所有文件或文件夹的大小总和,并以 MB 为单位输出总和。

3. 文件数量查看

你可以使用 ls 命令来查看当前文件夹中文件的数量。 ls 命令选项 -a 可以显示所有文件(包括隐藏文件),-l 可以输出长格式,其中第二列表示文件的硬链接数量。因此,可以通过 ls -a | wc -l 命令来计算当前文件夹中文件的数量。需要注意的是,因为每个文件夹中至少包含两个目录项,即 “.” 和 “…”,因此计算结果需要减去 2。

以下是查看当前文件夹中文件数量的具体命令:

ls -a | wc -l    # 包括隐藏文件,文件+文件夹
ls | wc -l       # 不包括隐藏文件,文件+文件夹

如果要排除子目录,且只想统计文件的数量而不统计目录数量可以使用以下命令:

ls -l | grep "^-" | wc -l

上述命令中的 grep "^-" 将在列出的文件名信息中仅匹配以减号 - 开头的那些,即排除了目录,只计算了文件。

### 在 Linux 系统中查看文件大小的命令 在 Linux 系统中,有多种方法可以用来查看文件的大小。以下是常用的几种方式: #### 方法一:`ls` 命令 通过 `ls` 命令及其选项可以方便地查看文件大小。例如: ```bash ls -lh filename ``` 此命令会以人类可读的形式(如 KB、MB 或 GB)显示指定文件的大小[^2]。 如果需要查看隐藏文件的大小,则可以加上 `-a` 参数: ```bash ls -lha ``` 还可以按文件大小排序: ```bash ls -lSrh ``` 这将按照文件大小降序排列所有文件[^2]。 --- #### 方法二:`du` 命令 `du` 是 disk usage 的缩写,主要用于统计磁盘空间使用情况。对于单独文件或整个目录,都可以用以下命令来获取其大小: ```bash du -h --max-depth=1 foldername ``` 其中,`--max-depth=1` 表示只计算当前目录下的一级子目录文件的大小;而 `-h` 则表示以更易理解的方式展示单位(如 KB、MB GB)。如果不加参数,默认输出的是字节数量[^4]。 针对特定文件也可以直接运行如下语句: ```bash du -h filename ``` --- #### 方法三:`stat` 命令 另一种精确查询单个文件属性的方法是利用 `stat` 工具。执行下面这条指令即可获得关于目标对象更加详细的元数据信息,其中包括确切尺寸字段。 ```bash stat -c %s filename ``` 这里 `%s` 占位符代表返回值为纯数值型的结果即实际占用存储容量(单位为字节)[^1]。 若要让结果更具直观性则改用其他格式化字符串比如 `%n:%s bytes` 可打印名称连同规模一起呈现出来. 为了得到易于阅读版本的数据形式, 还能尝试这样调用: ```bash stat -c "%n: %s bytes (%s human-readable)" filename | awk '{ split($NF,human,"."); printf("%s\t%s\n", $0, human[1]) }' ``` --- #### 方法四:`ncdu` 图形界面工具 虽然严格意义上讲这不是一条简单的 shell command ,但是考虑到它的强大功能以及便捷操作体验,在日常工作中非常值得推荐给大家认识一下。“NCurses Disk Usage” 提供了一个基于终端环境下的交互式视图以便快速浏览整体布局结构并定位大体积项目位置所在之处. 首先确保已经完成软件包安装工作之后再继续下一步骤动作 : ```bash sudo apt-get install ncdu # 对于Debian系发行版而言 yum install ncdu # 针对RedHat家族成员来说 pacman -S ncdu # ArchLinux用户适用方案 ``` 接着就可以启动程序指向任意路径地址了比如说根节点或者个人文档夹等等... ```bash ncdu /path/to/directory/ ``` 以上就是一些常见的用于检查 Linux 文件大小的技术手段[^3]. ```python # 示例 Python 脚本实现 ls 功能 (仅作演示用途) import os def list_files(directory): files = [] for entry in os.scandir(directory): if not entry.name.startswith('.') and entry.is_file(): size = entry.stat().st_size files.append((entry.name, size)) return sorted(files, key=lambda x: x[1], reverse=True) for fname, fsize in list_files('.'): print(f"{fname}: {fsize} Bytes") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值