cmp file1 file2
当文件相同时什么都不做。那么如何在 shell 脚本中打印出相同的文件呢?
问问题
3842 次
3 回答
7
如果文件相同,则退出状态cpm
为零,否则为非零。因此,您可以使用类似的东西
cmp file1 file2 && echo "Files are identical"
如果要保存退出状态,可以改用以下内容:
cmp file1 file2
status=$?
if [[ $status = 0 ]]; then
echo "Files are the same"
else
echo "Files are different"
fi
于 2014-05-02T13:23:45.027 回答
2
使用 的退出状态码cmp
。退出代码 0 表示它们相同:
$ cmp file1 file2; echo $?
0
在脚本中,您可以执行以下操作:
cmp file1 file2 && echo "same"
于 2014-05-02T13:24:07.690 回答
0
如果只需要显示结果,还可以使用diff -q -s file1 file2
:
-q
选项 (AKA--brief
)的diff
工作方式与 类似cmp
,因此它只检查文件是否不同或相同,而不识别更改(注意:我不知道这和 之间是否存在性能差异cmp
)。-s
选项 (AKA--report-identical-files
) 使其显示“文件 file1 和 file2 相同”消息,而不是不提供任何输出。当文件不同时,会显示“文件 file1 和 file2 不同”消息(假设-q
已使用)。
于 2021-09-09T15:16:44.937 回答