介绍
在这个实验中,你将学习如何在 Linux 中使用不同的命令行工具来检查文件是否为空。你将探索三种常见的方法:使用 test -s 命令检查文件大小,使用 wc -c 命令统计文件中的字节数,最后,使用 cat 命令直接检查文件内容。通过实际操作示例,你将了解每种方法的工作原理,以及如何解读它们的输出,从而判断文件是否包含数据。
在这个实验中,你将学习如何在 Linux 中使用不同的命令行工具来检查文件是否为空。你将探索三种常见的方法:使用 test -s 命令检查文件大小,使用 wc -c 命令统计文件中的字节数,最后,使用 cat 命令直接检查文件内容。通过实际操作示例,你将了解每种方法的工作原理,以及如何解读它们的输出,从而判断文件是否包含数据。
在这一步中,你将学习如何使用带有 -s 选项的 test 命令来检查文件是否存在且不为空。test 命令是一个内置的 shell 命令,用于计算条件表达式。它常用于 shell 脚本中以做出决策。
test 命令的 -s 选项用于检查文件是否存在且大小大于零(即文件不为空)。
首先,让我们在你的 ~/project 目录中创建一个空文件和一个非空文件。
如果终端尚未打开,请打开它。默认情况下,你应该位于 ~/project 目录中。
创建一个名为 empty_file.txt 的空文件:
touch empty_file.txt
现在,创建一个名为 non_empty_file.txt 的文件,并使用 echo 命令和重定向运算符 > 向其中添加一些文本。> 运算符将命令的输出重定向到一个文件。如果文件不存在,则会创建该文件;如果文件已存在,则会覆盖其内容。
echo "This file has content." > non_empty_file.txt
现在,让我们使用 test -s 命令来检查这些文件。test 命令在成功时不会产生输出。它通过退出状态码来表示成功或失败。退出状态码为 0 表示成功(条件为真),非零退出状态码表示失败(条件为假)。
我们可以使用特殊变量 $? 来检查上一个命令的退出状态码。
检查空文件:
test -s empty_file.txt
echo $?
你应该会看到输出 1,这表明 empty_file.txt 的条件(文件存在且不为空)为假。
现在,检查非空文件:
test -s non_empty_file.txt
echo $?
你应该会看到输出 0,这表明 non_empty_file.txt 的条件为真。
这是在 shell 脚本中检查文件属性的基本方法。你可以在尝试处理文件之前使用此方法确保文件包含内容。
点击 继续 以继续。
在这一步中,你将学习如何使用带有 -c 选项的 wc 命令来统计文件中的字节数。wc 命令是一个实用工具,用于打印每个文件的换行符、单词和字节数。
-c 选项指示 wc 仅统计字节数。
让我们使用上一步中创建的文件:empty_file.txt 和 non_empty_file.txt。
首先,统计 empty_file.txt 中的字节数。确保你位于 ~/project 目录中。
wc -c empty_file.txt
你应该会看到类似以下的输出:
0 empty_file.txt
这表明 empty_file.txt 有 0 字节,这是合理的,因为它是一个空文件。
现在,统计 non_empty_file.txt 中的字节数:
wc -c non_empty_file.txt
你应该会看到类似以下的输出:
23 non_empty_file.txt
数字 23 表示文件 "This file has content." 中的字节数,后面还跟着 echo 命令添加的一个换行符。每个字符通常占用一个字节。
wc 命令对于快速获取文件大小信息非常有用。你也可以不使用选项来运行 wc 命令,以获取行数、单词数和字节数。尝试运行 wc non_empty_file.txt 来查看差异。
点击 继续 进入下一步。
在这一步中,你将学习如何使用 cat 命令查看文件的内容。cat 是“concatenate”(连接)的缩写,主要用于显示文件内容。
让我们使用上一步创建的文件:empty_file.txt 和 non_empty_file.txt。确保你处于 ~/project 目录中。
首先,尝试查看 empty_file.txt 的内容:
cat empty_file.txt
由于 empty_file.txt 是空文件,cat 命令不会显示任何输出。
现在,查看 non_empty_file.txt 的内容:
cat non_empty_file.txt
你应该会看到我们在上一步添加的内容:
This file has content.
cat 命令是一种简单快捷的方式,可以直接在终端中显示文件的全部内容。在对非常大的文件使用 cat 命令时要谨慎,因为它会将所有内容打印到屏幕上,这可能会让人应接不暇。对于大文件,less 或 more 等命令更合适,因为它们允许你逐页查看内容。
你还可以使用 cat 命令合并多个文件的内容并显示出来。例如,如果你有 file1.txt 和 file2.txt,cat file1.txt file2.txt 会先显示 file1.txt 的内容,接着显示 file2.txt 的内容。
点击 继续 完成此实验。
在本次实验中,你学习了如何在 Linux 系统中使用 test -s 命令来检查文件是否为空。该命令会检查文件是否存在且大小是否大于零,若条件为真(文件不为空)则返回退出状态码 0,若为假(文件为空或不存在)则返回退出状态码 1。你练习了创建空文件和非空文件,并使用 test -s 命令验证它们的状态,还通过 $? 检查了退出状态码。