📅  最后修改于: 2023-12-03 15:11:53.003000             🧑  作者: Mango
在 Linux 中,我们经常需要获取目录中文件的大小。在 Shell/Bash 中,有多种方法可以实现这个目标。本文将介绍一些常见的方法和技巧。
ls
命令ls
命令可以列出指定目录中的文件和子目录。如果使用 -l
参数,还可以显示文件的详细信息,包括文件大小。我们可以对 ls
的输出进行一些操作,以获取文件的总大小。
以下是一个简单的 Bash 脚本,演示如何使用 ls
命令获取目录中文件的大小:
#!/bin/bash
# 定义目录
dir="/my/directory/path"
# 使用 ls 命令列出目录中的文件和子目录
# 使用 awk 命令提取文件大小字段
# 使用 paste 和 bc 命令计算文件总大小
ls -l "$dir" | awk '{sum += $5} END {print sum}' | paste -sd+ | bc
这个脚本将目录的路径存储在变量 dir
中。然后,它使用 ls -l
命令列出目录中的文件和子目录。awk
命令提取输出中的第五个字段,即文件大小,然后将其累加到 sum
变量中。最后,使用 paste
和 bc
命令计算文件总大小。
du
命令du
命令可以显示目录中每个文件和子目录的磁盘使用情况。如果使用 -h
参数,它将输出易于阅读的格式,包括文件大小。我们可以使用 du
命令来获取目录中文件的总大小。
以下是一个简单的 Bash 脚本,演示如何使用 du
命令获取目录中文件的大小:
#!/bin/bash
# 定义目录
dir="/my/directory/path"
# 使用 du 命令显示目录中每个文件和子目录的磁盘使用情况
# 使用 awk 命令提取文件大小字段
# 使用 paste 和 bc 命令计算文件总大小
du -h "$dir" | awk '{sum += $1} END {print sum}' | paste -sd+ | bc
这个脚本将目录的路径存储在变量 dir
中。然后,它使用 du -h
命令显示目录中每个文件和子目录的磁盘使用情况。awk
命令提取输出中的第一个字段,即文件大小,然后将其累加到 sum
变量中。最后,使用 paste
和 bc
命令计算文件总大小。
在 Shell/Bash 中获取目录中文件的大小有多种方法。使用 ls
命令和 awk
、paste
、bc
命令是一种简单且常见的方法。使用 du
命令和 awk
、paste
、bc
命令也是一种简单且常见的方法。根据实际情况,选择最适合你的方法即可。