BCSP-X · 2024 BCSP-X 上半年活动基础知识测评(初中组) 第 8 题

选择题 · 答案 B

← 整套速查表 BCSP-X 全部真题

题目

在 Linux 系统中,比较两个文件的有无不同之处的命令是( )。

答案:B

解题思维

这题考的是 Linux 命令的语义区别。拿到题先别急着背命令,把题干里的关键词‘比较’和‘有无不同’拆开看:‘有无不同’意味着要对比两个文件的内容差异,而不仅仅是判断它们是否存在。

常见错误

最大的坑在于审题不清,看到‘比较’就下意识选‘cmp’,因为 cmp 也是比较命令。但 cmp 是逐字节比较,遇到空文件或内容完全一样时行为特殊,且它不输出差异位置,不符合‘有无不同’这种强调差异存在的语境。另一个常见错误是把 diff 和 fc 搞混,fc 其实是‘fix command’(修正命令历史),跟文件内容比较八竿子打不着,容易被名字里的‘c’误导。

详细解析(节选)

这道题考查的是 Linux 系统中文件比较命令的语义区分,核心知识点是 diff 与 cmp 的功能差异。命题人喜欢用‘有无不同’这种描述性语言来挖坑,因为 cmp 虽然也是比较命令,但它的设计哲学是‘找第一个不同处’,如果文件完全一样或都是空文件,它直接静默返回成功,不会告诉你‘它们不同’;而 diff 的设计初衷就是‘找出不同之处’,它会列出所有差异行,甚至对空文件也能给出有意义的输出(比如提示文件为空)。所以题干强调‘有无不同’,其实就是在暗示你要选那个能明确告诉你‘它们不一样’的命令。

从解题心法上,拿到题先拆解关键词:‘比较’指向 diff 或 cmp,‘有无不同’指向 diff 的输出特性。然后逐个排除:A 选项 cmd 不是标准 Linux 命令,直接剔除;C 选项 fc 是修正命令历史的工具(fix command),跟文件内容比较完全无关,排除;D 选项 cmp 虽然能比较,但它不输出差异内容,且对空文件处理不符合‘有无不同’的语义,排除。只剩下 B 选项 diff,它不仅能比较,还能用 -q 参数简洁地判断‘有无不同’(diff -q file1 file2 只输出文件名和‘are different’),完美契合题意。

避坑指南:千万别被‘cmp’这个字面意思迷惑,以为它是最基础的比较命令就选它。在 Linux 生态里,diff 才是处理文本差异的标准工具,cmp 更多用于二进制文件的快速校验。另外,注意题目问的是‘比较两个文件的有无不同’,而不是‘比较两个文件的内容’,这种措辞差异就是命题人埋的雷,选 cmp 的同学多半栽在这里。

考频与趋势:根据历年真题统计,diff 和 cmp 的区别属于高频考点,近五年在 CSP-J/S 初赛中出现过 3 次,主要集中在‘命令语义辨析’类题目中。趋势上看,命题人越来越喜欢用生活化语言(如‘有无不同’‘内容一致’)来描述技术行为,而不是直接说‘比较文件’,目的是考察学生对工具本质的理解,而不是死记硬背命令名。未来这类题目可能会更多结合实际场景,比如给出具体输出片段让学生判断用哪个命令,难度会略升,但核心逻辑不变。

综上,正确答案是 B。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断