在 Bash 中查找文件大小
如果您正在创建一个可以将文件从一个位置传输到另一个位置的 Bash 脚本,您可能需要知道您正在处理的文件的大小。
在 Bash 脚本中,有几种方法可以找到文件的大小。 本文将展示如何通过 Bash 查找文件的大小。
我们将在这里讨论三种不同的方法,您可以根据自己的需要选择最合适的一种。 此外,我们将看到必要的示例和解释,以使主题更容易理解。
使用 ls 关键字在 Bash 中查找文件大小
我们可以使用 Bash 的内置命令来查找文件的大小,也就是关键字 ls
。 通过此关键字,您可以按照以下示例查找文件的大小:
ls -lh Test.txt | awk '{print $5}'
运行此命令后,您将获得如下所示的输出:
99
上面,我们分享了这种方法的一个非常简单的格式。 在下面的示例中,我们将分享一种有组织的方式来找出文件大小。
更新的示例是:
echo "Enter the directory or name of the file:"
read File
FileSize=$(ls -lh $File | awk '{print $5}')
echo "$File has a size of $FileSize"
在上面的示例中,我们从用户输入中获取文件名,然后提供文件大小作为输出。
运行此示例后,您将获得以下输出:
Enter the directory or name of the file:
Test.txt
Test.txt has a size of 99
在 Bash 中使用 wc 关键字查找文件大小
Bash 中另一个可用于查找文件大小的关键字是 wc
。 下面分享了使用此命令的最简单方法:
wc -c Test.txt
执行上述命令后,您将获得以下输出:
99 Test.txt
现在我们将介绍一个高级示例。 在我们下面的示例中,我们将为用户提供一个选项来选择文件大小格式。
我们的高级示例包含以下代码。
echo "Select the FORMAT for the size:"
echo """
1. Bytes
2. KiloBytes
3. MegaBytes
4. GigaBytes
"""
echo "--------------------------------------------------------"
read FORMAT
echo "Provide the Filename or Directory: "
read FILE
FileSize=$(wc -c $FILE | awk '{print $1}')
if [[("$FORMAT" == 1)]];
then
echo "$FILE is approx $FileSize Bytes"
elif [[("$FORMAT" == 2)]];
then
kb=$(bc <<<"scale=3; $FileSize / 1024")
echo "$FILE is approximately $kb KB"
elif [[("$FORMAT" == 3)]];
then
mb=$(bc <<<"scale=6; $FileSize / 1048576")
echo "$FILE is approximately $mb MB"
elif [[("$FORMAT" == 4)]];
then
gb=$(bc <<<"scale=12; $FileSize / 1073741824")
echo "$FILE is approximately $gb GB"
else
echo "Incorrect FORMAT."
exit
fi
在上面的示例中,我们首先向用户提供一个选项并读取用户输入。 在下一部分中,我们采用用户输入的文件名。
之后,我们根据用户选择转换文件大小并提供结果。
运行此代码时,您将获得以下输出:
Select the FORMAT for the size:
1. Bytes
2. KiloBytes
3. MegaBytes
4. GigaBytes
--------------------------------------------------------
1
Provide the Filename or Directory:
Test.txt
Test.txt is approx 99 Bytes
在 Bash 中使用 stat 关键字查找文件大小
我们的最后一个方法将引入 Bash 中的另一个内置关键字 stat。 该关键字主要提供与文件相关的所有必要信息。
查找文件大小的最简单方法如下:
stat Test.txt
上面共享的单行命令将为您提供文件大小和其他详细信息,如姓名、出生等。执行上面的命令后,您将获得以下输出:
File: Test.txt
Size: 99 Blocks: 0 IO Block: 4096 regular file
Device: 11h/17d Inode: 281474976715600 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ aminul) Gid: ( 1000/ aminul)
Access: 2022-08-04 14:57:18.556623600 +0600
Modify: 2022-08-04 14:45:27.259462300 +0600
Change: 2022-08-04 14:45:27.259462300 +0600
Birth: -
上面共享的示例包含一些关于文件的不必要信息。 但在下面的示例中,您可以消除这些。
我们关于此方法的下一个更新代码如下:
echo "Enter the path or directory: "
read FilePath
FileSize=$(stat -c %s $FilePath)
echo "$FilePath is precise $FileSize bytes."
执行上面的示例代码后,您将得到以下输出:
Enter the path or directory:
Test.txt
Test.txt is precise 99 bytes.
请注意
,本文中使用的所有代码都是用 Bash 编写的。 它只能在 Linux Shell 环境中运行。
相关文章
在 Bash 中删除空行
发布时间:2023/05/31 浏览次数:111 分类:操作系统
-
使用文件时,您可能需要在显示文件之前从文件中删除空行。 在 Bash Script 中,有几种方法可以从文件中删除空行。在 Bash 中删除空行的文件
在 Bash 中递归查找文件
发布时间:2023/05/31 浏览次数:195 分类:操作系统
-
这篇文章是关于 Bash 中的 find 命令的。 本文将讨论在 Bash 中使用 find 命令查找特定类型文件的方法。在 Bash 中使用 find 命令递归查找文件 用于导航文件层次结构的命令行工具是 Linux 中的 find
在 Bash 中将文件读入变量
发布时间:2023/05/31 浏览次数:165 分类:操作系统
-
本文将展示我们如何在变量中获取文件。 此外,我们将看到必要的示例和适当的解释,以使主题更容易理解。要保存到变量中的文本文件
在 Bash 中检查文件是否为空
发布时间:2023/05/31 浏览次数:74 分类:操作系统
-
通常需要检查文件是否为空,幸运的是,有一些简单的方法可以在终端上使用 Bash 或什至使用 Bash 脚本来检查。在 Bash 中使用带有 -s 选项标志的测试命令来检查文件是否为空
在 Bash 中搜索文件名以指定字符串开头的文件
发布时间:2023/05/31 浏览次数:127 分类:操作系统
-
在本文中,我们将学习如何查找文件名以指定字符串开头的所有文件。在 Bash 中搜索文件名以指定字符串开头的文件。使用 grep 命令
使用 Bash 打开 HTML 文件
发布时间:2023/05/31 浏览次数:192 分类:操作系统
-
在本文中,我们将了解如何在 Mac 上使用 Bash 使用默认浏览器打开 HTML 文件。使用 Bash 打开 HTML 文件 要打开 .html 文件,首先,我们需要创建一个扩展名为 .html 的文件名。
Bash 覆盖 File
发布时间:2023/05/31 浏览次数:102 分类:操作系统
-
在这篇 bash 文章中,我们将学习如何在 Linux 中覆盖文件。 为此,我们将学习使用 Linux 操作系统在 bash 中覆盖文件的不同方法和 Linux 命令。
在 Bash 中写入文件
发布时间:2023/05/20 浏览次数:100 分类:操作系统
-
本篇文章将让我们探索在 bash 中编写文件的不同方法。 可以根据需要追加或覆盖文件。 让我们看看我们该怎么做。在 Bash 中写入/覆盖文件的不同方法
在 Bash 中终止进程
发布时间:2023/05/20 浏览次数:141 分类:操作系统
-
本文将首先讨论与 Linux 进程相关的不同概念。 在此之后,我们将学习终止进程的不同方法。在进入 kill 命令之前,我们必须了解一些初步概念。简单过程与 Bash 过程