用于测量文件大小的 Shell 脚本
在编写 shell 脚本时,会出现一些情况,您必须知道文件的大小以便在脚本中进行进一步处理。在本文中,我们将学习如何测量文件的大小并解决这些情况。
方法一:使用ls命令
方法:
- 首先,我们将创建一个变量来保存文件的完整路径。
- 我们将从完整路径中提取文件名,以显示文件名和文件大小。
- 使用 ls 和 cut 命令,我们将从文件的详细信息中提取文件大小。
- 显示文件名及其大小。
脚本:
#! /bin/bash
# path to the file
filepath="/home/amninder/Downloads/cn.zip"
# extracting file name from full file path
name="${filepath##*/}"
# extracting the size of a file
size=$(ls -lah $filepath |cut -d ' ' -f 5)
#displaying file name and file size
echo "FILE SIZE OF $name IS $size"
输出:
方法二:使用stat命令:
stat 是一个 UNIX 命令行实用程序。 Stat 将文件作为参数并返回有关文件/文件系统的详细信息。
Syntax :stat [option] path/to/file
注意:这里,%s 用于获取文件的总大小,-c 用于指定输出格式,即我们只想打印文件的总大小。
脚本 :
#! /bin/bash
# path to the file
filepath="/home/amninder/Downloads/cn.zip"
# extracting file name from full file path
name="${filepath##*/}"
# extracting the size of a file
size=$( stat -c %s $filepath)
#displaying file name and file size
echo "FILE SIZE OF $name IS $size bytes."
输出:
方法三:使用 wc 命令:
wc 是 word count 的缩写。顾名思义, wc 可用于打印文件中的换行符、字节数、字符数、单词数。
Syntax: wc [OPTION]… [FILE]…
Here, the [OPTION] can contain any of the following argument:
- -c or –bytes (it will print the size in bytes)
- -m or –chars (it will print character counts)
- -l or –lines (it will print the newline counts)
- -w or –words (it will print the number of words in the file)
方法:
- 创建一个变量来存储文件的完整路径。
- 使用 wc –bytes,我们将找到文件的大小并将其存储在另一个变量中用于显示。
- 显示文件大小。
脚本 :
#! /bin/bash
# path to the file
filepath="/home/amninder/Downloads/cn.zip"
# storing file size in a variable.
size=$(wc --bytes < $filepath)
# displaying file size
echo "The size of file is $size Bytes"
输出:
方法四:使用find命令:
find 是 Linux 中一个非常强大的命令行实用程序,用于搜索文件和文件夹。它很灵活,我们可以在 Linux 中使用它们的年龄、大小、所有者、文件类型、时间戳、权限来搜索文件或文件夹。
脚本:
#! /bin/bash
# path to the file
filepath="/home/amninder/Downloads/cn.zip"
# storing file size in a variable.
size=$(find $filepath -printf %s)
# displaying file size
echo "The size of file is $size Bytes"
在这里,我们提供文件以使用 -printf %s 查找和检索其大小。 %s 将导致文件的大小(以字节为单位)。
输出:
注意:将文件路径替换为原始文件的路径。