Diff关心文件名吗?

时间:2013-09-19 13:07:59

标签: bash diff filenames

我正在测试文件,比较它们,我想知道:

bash中的diff命令是否关心文件名? 这是我的例子:

我有一个文件:

shswitch_313083_126.138.36.253_11894

还有一个:

MP-313083-Sw1-126.138.36.253

它们包含完全相同的东西。 当我这样做时:

if diff $LOCALDIR'/liste/'$filename $DIR'/working-dir/shswitch_'$codesite'_'$ip'_'*'_OUTPUTCONFIG' >/dev/null ; then

Diff会返回与/ dev / null不同的东西 那么,diff是否关心文件名?或者我的代码有问题吗?在不关心文件名的情况下,我应该使用什么来返回文件是否包含相同的内容?

2 个答案:

答案 0 :(得分:1)

diff绝对不关心文件名。如果文件内容相同则返回0,否则如果存在其他差异则返回1,如果某个文件不存在则返回2。顺便说一句,程序永远不会返回/dev/null,这没有意义。

答案 1 :(得分:1)

如果您只想检查两个文件是相同还是不同,您可以说:

diff -q file1 file2 > /dev/null && echo "Files are identical" || echo "Files differ"

使用-q只会报告文件是否不同。

如果文件不同,为了执行操作,请说:

diff -q file1 file2 > /dev/null || some_command