linux cp文件大小不一致 – 酷喃|coolnull 您所在的位置:网站首页 win7显示文件夹大小不一样怎么回事 linux cp文件大小不一致 – 酷喃|coolnull

linux cp文件大小不一致 – 酷喃|coolnull

2024-07-12 05:31| 来源: 网络整理| 查看: 265

说明: 因为某个磁盘满了,需要将原始文件拷贝到新磁盘。数据非常重要,需要保证拷贝数据与原始数据一致。用cp拷贝完成后,发现文件大小不一致。原始文件夹5.8G(du –max-depth=1查看),拷贝文件夹5.9G,差别相当明显。 实现: 1.最初怀疑是因为不同磁盘的最小计量单位不同导致,以为最小计算单位是sector(其实是错的)。 因此fdisk -l /dev/sda查看了下 发现两者的扇区是一样的,郁闷。 2.接着怀疑拷贝的文件数,文件大小不一致。于是自己写了个简单的shell脚本,查看每个文件具体大小,不一致的会输出!=

[root@xm101 2012]# cat test.sh #!/bin/bash path1=/opt/a/2012/01/20 path2=/opt/b/2012/01/20 for i in `ls $path2`; do a=`/bin/ls -l $path1/$i|awk '{print $5}'` b=`/bin/ls -l $path2/$i|awk '{print $5}'` sum=`[ "$a" != "$b" ] && echo "!="` echo $i path1:$a path2:$b $sum >> hello.txt done

结果发现每个文件大小完全一致,用md5确认(cat * | md5sum),发现原始文件,拷贝文件也是一致的 3.这就纳闷了,突然想起磁盘的最小计量单位应该是block才对,因此。。。。 tune2fs -l /dev/sda1 tune2fs -l /dev/sdb1 发现确实是因为这个,绕了一圈又回来了,看来专业水平还要提高 附注: 在查看答案过程中,听说du是按inode来计算文件大小的,因此显示文件大小时速度较快。inode记录了一个文件的起始block,结束block。因此即使文件没有完整占用1个block时,也算1个。也会导致文件大小不一致。 而ls是根据block来计算文件大小的

Post Views: 1,721


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有