Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Mark42
V2EX  ›  Linux

请教一个 cp 拷贝,目录大小不一致的问题

  •  
  •   Mark42 · Apr 25, 2022 · 3219 views
    This topic created in 1485 days ago, the information mentioned may be changed or developed.
    [root@xxx home]# cp -rp /var/lib/docker /home/docker-data
    [root@xxx home]# du -sh /var/lib/docker
    4.3G /var/lib/docker
    [root@xxx home]# du -sh /home/docker-data/
    4.7G /home/docker-data/
    6 replies    2022-04-25 16:12:58 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       Apr 25, 2022
    你先看看 du 到底在 count 啥.....
    aloxaf
        2
    aloxaf  
       Apr 25, 2022
    du 默认统计磁盘占用,而不是文件大小
    skyoojaa
        3
    skyoojaa  
       Apr 25, 2022
    可以对比下两个目录的文件数量。
    tomychen
        4
    tomychen  
       Apr 25, 2022
    检查一下内存...
    我之前也是遇到类似问题,原因就是有一条内存坏了。导致复制大文件的时候总是出错( MD5 ,校验失败),开始以为是我程序的问题,一直在代码上找原因,后来用 cp 一样会有问题,最终换内存解决问题。
    securityCoding
        5
    securityCoding  
       Apr 25, 2022 via Android
    @tomychen 我擦,这也可以
    Mark42
        6
    Mark42  
    OP
       Apr 25, 2022   ❤️ 3
    谢谢大家的思路,破案了。
    原因是源目录中的文件存在硬链接,因为硬链接是同一个 inode ,导致 du -sh 时只统计了一个文件的大小;
    cp -rp 命令并没有保留原本的硬链接,而是创建了同样的文件,在系统里是不同的 inode 。所以 du 统计目的目录大小时会变大。
    如何解决:cp 加上-a 参数;或者使用 rsync -H
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1263 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 17:43 · PVG 01:43 · LAX 10:43 · JFK 13:43
    ♥ Do have faith in what you're doing.