【问题标题】:Unix : cksum comparison between files in a folderUnix:文件夹中文件之间的 cksum 比较
【发布时间】:2013-12-11 08:32:29
【问题描述】:

我的 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

然后文件的差异......有成千上万的文件。我们还有其他好的方法吗

【问题讨论】:

  • 你有没有尝试过?
  • @Lutz Horn : 更新了我在网上找到的内容..但没有发现它很好。

标签: shell unix checksum


【解决方案1】:

文件:

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

脚本:

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

【讨论】:

  • 然后使用chksum 而不是md5sumcut 仅用于从输出中提取有趣的部分。
【解决方案2】:

Rsync 可以为你做这个比较

rsync -n -avrc folder1 folder2

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多