为何使用ls -sh查看同一目录会显示不同大小?
为何使用ls -sh查看同一目录会显示不同大小?
别慌,这不是你看错了,而是ls -sh在两种场景下显示的完全是两个不同的东西,我给你掰扯清楚:
当你在
My_dir目录里执行ls -sh时,输出里的total 386M是这个目录下所有文件的内容总大小,后面列出来的每个文件大小也是它们实际存储的音频数据的大小,这个是你感知到的“目录里内容的总大小”。而当你退到上级目录,执行
ls -sh看到My_dir的大小是4K,这时候显示的是目录这个特殊文件本身的大小。在Linux里,目录本质上是一种存储条目信息的文件——它里面存的不是文件内容,而是文件名、指向文件实际数据的inode指针这些元数据。你的My_dir里只有5个文件,这些元数据加起来刚好占满一个文件系统的默认块(通常是4K),所以就显示4K啦。
如果想真正查看My_dir及其所有内容的总大小,别用ls,改用du -sh My_dir命令,它会递归计算所有文件和子目录的大小总和,出来的结果就和你在目录里看到的total一致了。
备注:内容来源于stack exchange,提问作者user1057182
相关产品推荐
相关产品推荐

