zoukankan      html  css  js  c++  java
  • 关于右键属性与du -sh显示的文件大小不一致的解决


    du -sh filename(其实我们经常用du -sh *,显示当前目录下所有的文件及其大小,如果要排序再在后面加上 | sort -n)
     
    关于右键属性与du -sh显示的文件大小不一致的解决:
    总之:我的理解就是du查到的是实际硬盘上的block大小,包括很多隐藏文件,软,硬链接,以及由于磁盘格式划分等等的问题,导致了不一致,
    右键属性相当于
    du --exclude='.*' --exclude='*~' -b -D -s 你的文件或文件夹  及除开那些多余的东西。
    而du -sh 则是全部显示了出来,所以,他显示的要大。
     
     
    (百度到的,我认为合理)
     
    这里有几方面的问题, 导致有好几种计算文件大小方法.

    1. 内容大小 和 磁盘(或者别的什么储存器)占用大小, 比如

    # 文件内容是 三个字母加一个换行

    ~/tmp$ cat abc.txt
    efg


    # 内容大小是 4 字节(--apparent-size 计算内容大小, --block-size=1 以字节位单位)
    ~/tmp$ du --apparent-size --block-size=1 abc.txt
    4 abc.txt


    # 占用磁盘空间4096字节, 这个结果跟磁盘格式密切相关
    ~/tmp$ du --block-size=1 abc.txt
    4096 abc.txt

    2. 符号链接(symbolic links 或 soft links 或 symlinks)的问题

    # 这里有个指向刚才那个文件的符号链接

    ~/tmp$ ls -nl link_abc.txt
    lrwxrwxrwx 1 1000 1000 7 Jan 28 18:34 link_abc.txt -> abc.txt


    # 符号链接本身不占用"普通的"磁盘空间, 就像一个空文件一样.
    ~/tmp$ du --block-size=1 link_abc.txt
    0 link_abc.txt


    # 不过内容大小还是有的, 实际上是 "abc.txt" 共7个字符.
    ~/tmp$ du --apparent-size --block-size=1 link_abc.txt
    7 link_abc.txt
    ~/tmp$ 


    # 另外要查看指向的文件的大小的话应该这样 (跟最开始一样)
    ~/tmp$ du --apparent-size --block-size=1 -L link_abc.txt
    4 link_abc.txt


    3. 隐藏文件的问题

    英文句点"."开头的文件 或者 波浪号"~"结尾的文件属于隐藏文件.

    ~/tmp$ ls
    abc.txt link_abc.txt

    ~/tmp$ ls -A
    abc.txt link_abc.txt .xxx

    (不过好像对于 ls 命令来说 "*~" 不属于隐藏文件)

     
    4.文件夹本身占用空间的问题

    # du 是要算上文件夹本身大小的

    ~/tmp$ du --exclude='.*' --exclude='*~' --apparent-size -s -b -D ~/tmp
    4107 /home/xyy/tmp
    # 系统文件管理 没算上(右键属性)
     
     
    Gnome 默认的文件管理器 nautilus 统计文件大小的时候忽略隐藏文件(对应du --exclude='.*' --exclude='*~'), 会跟入一层符号链接(对应 du -D), 显示文件内容大小(而不是磁盘占用), 并以1000进位(du -b).


    最后合起来就是
    du --exclude='.*' --exclude='*~' -b -D -s 你的文件或文件夹

     
  • 相关阅读:
    sublime text 配置本地静态服务器方法
    js中获得当前时间是年份和月份
    如何在Intellij IDEA中拉svn分支?
    快速上手seajs模块化以及案例
    webpack 配置多页面应用的一次尝试
    【Gitlab】gitlab-CI 持续集成以及runner的配置简版
    【vue】elementUI报错:_self.$scopedSlots.default is not a function
    【webpack】webpack多版本控制方案
    vuepress博客主题—vuepress-theme-reco
    reco-fetch
  • 原文地址:https://www.cnblogs.com/iamhenanese/p/5514134.html
Copyright © 2011-2022 走看看