说明:

因为某个磁盘满了,需要将原始文件拷贝到新磁盘。数据非常重要,需要保证拷贝数据与原始数据一致。用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来计算文件大小的

转载自:linux cp文件大小不一致:http://coolnull.com/443.html

linux拷贝大量文件时有什么方法可以效验文件有没有损坏,使用linux的cp命令复制文件后验证文件是否一致的方法...相关推荐

  1. 在linux终端显示cp命令复制文件时的速度

    cp命令显示拷贝的速度 在window平台上复制一个文件时可以即时查看文件复制时的速度. 在linux平台上查看了cp命令的参数,没有相关参数可以实现此功能,所以需要借助工具来实现此功能. 我平时用的 ...

  2. linux cp复制文件夹下的软连接,Linux培训:cp命令复制文件和目录

    Linux培训:cp命令复制文件和目录 更新时间:2019年04月02日16时56分 来源:传智播客linux培训 浏览次数: cp 是用于复制的命令,其基本信息如下: 命令名称:cp: 英文原意:c ...

  3. 如何让cp命令创建任何必要的文件夹以将文件复制到目标[重复]

    本文翻译自:How to have the cp command create any necessary folders for copying a file to a destination [d ...

  4. linux cp拷贝一个文件到另一个目录,cp命令复制文件夹到另一个文件夹的注意事项 - 翟码农技术博客...

    最近发现之前写好的shell脚本里cp命令拷贝文件夹,丢失了一层文件夹.才发现cp命令里还有一层这么容易让人混淆的用法,为避免继续踩坑,特此记载. 现在假定文件存在的目录如下面所示: --from - ...

  5. cp 命令 复制文件及目录

    总目录 1 cp 指令(复制文件或目录) 1.1 cp java.txt /eip/ 把java文件不改名复制到 /eip/ 目录下 ***(文件不改名复制)*** 1.2 cp java.txt / ...

  6. c#取消word修订痕迹_C#怎监控例似WORD这样用临时文档记录修改过的文件,并复制修改后的文件?...

    满意答案 木有fz 2013.06.12 采纳率:42%    等级:13 已帮助:9475人 用.net自带的FileSystemWatcher组件,它能与操作系统的接口结合起来,自动帮你监测指定的 ...

  7. cp命令 – 复制文件或目录

    cp命令是英文单词copy的缩写,用于将一个或多个文件/目录复制到指定位置,也常用于文件的备份工作. 注意:该命令不能用于跨主机文件复制,仅用于同一主机内的文件复制. 该命令的语法格式如下 cp [选 ...

  8. linux cp命令复制整个文件夹

    本文档为个人博客文档系统的备份版本.作者:小游.作者博客:点击访问 假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了 如果dir2目录不存在,则可以直 ...

  9. Linux 中执行命令 ls -l 后,文件详细信息(文件属性/文件详情)说明

最新文章

  1. IDEA2020如何设置全局maven路径
  2. Spring 和 SpringBoot 比较,解惑区别!
  3. 【Kafka】报错:Error while fetching metadata with correlation id 1 : {topic_lcc=LEADER_NOT_AVAILABLE}
  4. SQL:mysql将datetime类型数据格式化
  5. 三维空间中无人机路径规划的改进型蝙蝠算法
  6. 前端每日实战:50# 视频演示如何用纯 CSS 创作一个永动的牛顿摆
  7. 抛物线模拟合地对空导弹轨迹[python][抛物线][地对空导弹轨迹]
  8. 关于多卡Android设备获取手机号的研究
  9. app显示服务器图片不显示,如何将存在本地服务器的图片,在APP前台显示
  10. 基于FPGA的数字电子琴——数电小系统设计【数字电子技术】(使用Vivado中的verilog语言)含piano代码文件(全)
  11. web读取身份证信息(java语言)
  12. (java)判断a是奇数还是偶数
  13. return this java_简单的this,麻烦的this
  14. shell运行python
  15. 【程序源代码】小程序-前后开源
  16. 基于优龙FS2410开发板u-boot-1.1.6的移植(NAND FLASH) (二)
  17. Polyline Simplification(多线段简化/离散采样)
  18. 趣头条基于ClickHouse玩转每天1000亿数据量
  19. No.20 不深入而浅出 Roaring Bitmaps 的基本原理
  20. 基于VC++PNG按钮的实现

热门文章

  1. ref获取元素 vue 删除子元素_vue中的 ref 和 $refs
  2. 怎么设置数据库服务器的最佳性能,调整Windows参数提高数据库服务器性能
  3. html lt;ligt; 属性,HTML文件中lt;HRgt;标签各个属性的作用是什么?
  4. php is_post,PHP发送get、post请求的6种方法简明总结
  5. 免费下载|《云原生时代下的App开发》走进阿里云一站式应用研发平台EMAS
  6. 李飞飞:新技术变革时代的数据库产业
  7. 伽蓝集团:用数据驱动增长的美妆行业引领者
  8. 大文件下载及视频点播的CDN加速实践
  9. 为什么要在游戏中复刻现实?我们能获得怎样的乐趣?
  10. 制作精良、意犹未尽的异色推理小剧场《Tangle Tower 缠结塔》