代码之家  ›  专栏  ›  技术社区  ›  user1874594

“使用大小查找”选项在busybox上无法正确报告

  •  0
  • user1874594  · 技术社区  · 3 年前

    在下面 find 不太尊重 -size 参数我必须使用 pipes 完成任务。我在某个地方读到了一个与这个大小有关的片段 datablocks 虽然有取整的情况发生,但这对我们来说是不明智的 size ....你在下面看到了什么
    我的问题很明确——这是一个剥皮的人吗 发现 安卓版又名use anor在运行时我遗漏了一些东西。

    find  /data/s*2/data -maxdepth 1 -mindepth 1 -type d  -size -10k |  sort
    

    o/p

    /data/sdext2/data/us.zoom.videomeetings
    /data/sdext2/data/xeus.timbre
    

    实际尺寸

    /#du -hs /data/sdext2/data/us.zoom.videomeetings
    16K /data/sdext2/data/us.zoom.videomeetings
    /#du -hs /data/sdext2/data/xeus.timbre
    2.2M    /data/sdext2/data/xeus.timbre
    /#
    

    我可以用 du pipe -exec 但这个问题是关于一个解决方案,使用一个单一的通行证,如果由 发现

    .

    使现代化 :来自评论” 请将每个文件的busybox stat输出添加到您的问题中 "
    来吧。。。

        /#busybox  stat /data/sdext2/data/us.zoom.videomeetings
      File: /data/sdext2/data/us.zoom.videomeetings
      Size: 4096        Blocks: 8          IO Block: 4096   directory
    Device: b342h/45890d    Inode: 189044      Links: 4
    Access: (0775/drwxrwxr-x)  Uid: (10325/ u0_a325)   Gid: (10325/ u0_a325)
    Access: 2021-08-31 13:09:17.000000000 +0530
    Modify: 2021-08-31 20:59:13.974177753 +0530
    Change: 2021-08-31 20:59:13.974177753 +0530
    /#busybox  stat /data/sdext2/data/xeus.timbre                                                                                        
      File: /data/sdext2/data/xeus.timbre
      Size: 4096        Blocks: 8          IO Block: 4096   directory
    Device: b342h/45890d    Inode: 155677      Links: 13
    Access: (0775/drwxrwxr-x)  Uid: (10341/ u0_a341)   Gid: (10341/ u0_a341)
    Access: 2021-08-16 14:58:55.000000000 +0530
    Modify: 2021-08-31 14:13:51.225999993 +0530
    Change: 2021-08-31 17:34:57.068960585 +0530
    /#
    
    0 回复  |  直到 3 年前
        1
  •  1
  •   jhnc    3 年前

    find 他行为正常。

    你是在检查 -size 属于 -type d .

    目录只是包含其他文件信息的文件。[1]

    当你跑的时候 du -hs /data/sdext2/data/xeus.timbre ,它计算所有引用的文件和子目录(以及这些子目录引用的文件和子目录)使用的总大小,而不是 xeus.timbre 本身(你的 stat 显示为4096字节)。


    [1] 来自 Wikipedia :

    Unix目录不包含文件。相反,它们包含文件名和对所谓inode的引用,inode又包含文件及其元数据(所有者、权限、上次访问时间等,但没有名称)。文件系统中的多个名称可能引用同一个文件,这一特性称为硬链接。