Unix:cksum比较文件夹中的文件

时间:2013-11-26 09:27:43

标签: shell unix checksum

我的src文件夹中有数千个文件。我有src和src_temp文件夹名称,两者在文件方面相同,但文件cksum可能不同。

我想比较文件夹中的文件与cksum,以便我可以看到哪些文件不同。

请让我知道。

我也检查了这个link,但是不知道检查数千个文件哪个好。

找到:

$ # go to directory dir1
$ cd dir1
$
$ ls | sort | xargs cksum
1958180199 14 file1
1994293486 14 file2
1996893289 14 file3
$
$ # now do the same for directory dir2
$ cd ../dir2
$
$ ls | sort | xargs cksum
1958180199 14 file1
1994293486 14 file2
1996893289 14 file3

然后文件的差异....有成千上万的文件。我们还有其他任何好的approch

2 个答案:

答案 0 :(得分:2)

Rsync可以为您进行此比较

rsync -n -avrc folder1 folder2

如果您的其他机器上有其他文件夹

rsync -n -avrc folder1/* server2:/home/myuser/folder2

-n选项只进行比较而不进行实际的rsync

答案 1 :(得分:1)

文件:

$ cat f1/foo.txt   
foo
$ cat f1/bar.txt
bar
$ cat f2/foo.txt 
fooX
$ cat f2/bar.txt
bar

Skript:

for f in f1/*
do
  b=$(basename $f)
  m1=$(md5sum f1/$b | cut -d' ' -f1)
  m2=$(md5sum f2/$b | cut -d' ' -f1)
  if [ "$m1" != "$m2" ]
  then
    echo $b is different
  fi
done

输出:

foo.txt is different