代码之家  ›  专栏  ›  技术社区  ›  Hirurg103 Tilendor

为什么用cp命令复制的目录比原来的目录小

  •  0
  • Hirurg103 Tilendor  · 技术社区  · 6 年前

    我想把一个目录和大量的文件复制到另一个目的地。我做的

    cp -r src_dir another_destination/
    

    然后我想确认目标目录的大小与原始目录的大小相同:

    du -s src_dir
    3782288 src_dir
    
    du -s another_destination/src_dir
    3502320 another_destination/src_dir
    

    然后我就想,可能有几个符号链接没有跟在后面 cp -a 标志:

    -与-pPR选项相同。保留文件的结构和属性,但不保留目录结构。

    cp -a src_dir another_destination/
    

    但是 du -s 给了我同样的结果。有趣的是,源和目标具有相同数量的文件和目录:

    tree src_dir | wc -l
        4293
    
    tree another_destination/src_dir | wc -l
        4293
    

    我做错了什么我得到了不同的尺寸 du 指挥部?

    0 回复  |  直到 6 年前
        1
  •  1
  •   Alfe    5 年前

    这可能有很多原因,因为您要的是已用磁盘大小,而不是两个树中存储的字节量。

    • 另一个原因可能是原始文件中的硬链接文件。副本可能已多次复制硬链接文件,以便在副本中不再硬链接。
    • 第三个原因可能是稀疏文件包含大面积的零字节,在某些文件系统中,可以通过不分配块来有效地存储这些文件。

    du -bs 在两棵树上。

    推荐文章