深度剖析 Linux cp 命令的秘密(13)

  • cp 命令通过调用 ioctl(fiemap)系统调用,可以获取到文件空洞的分布情况,cp 过程中跳过这些空洞,极大的提高了效率(100G 的源文件,cp 只做了十几次 io 搞定了,所以 1 秒足以);
  • cp 的 sparse 参数从速度最快,空间最省,数据最拷贝最多,各有特点,小小的 cp 命令出来的目标文件,其实和源文件并不相同,只不过你没注意到;
  • 预分配和 punch hole 其实都是fallocate 调用,只是参数不同而已,调用的时候,注意要 4k 对齐才能达到目的;
  • 稀疏文件的 punch hole 应用有很多场景,通常是用来快速释放空间,比如镜像文件 。

  • 【深度剖析 Linux cp 命令的秘密】


    推荐阅读