我正在测试文件,比较它们,我想知道:
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是否关心文件名?或者我的代码有问题吗?在不关心文件名的情况下,我应该使用什么来返回文件是否包含相同的内容?
答案 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