0

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

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 是否关心文件名?还是我的代码有问题?我应该用什么来返回文件是否包含相同的东西而不关心文件名?

4

2 回答 2

1

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

于 2013-09-19T13:19:09.403 回答
1

如果您想简单地检查两个文件是否相同或不同,您可以说:

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

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

为了在文件不同时执行操作,请说:

diff -q file1 file2 > /dev/null || some_command
于 2013-09-19T13:19:47.890 回答