ls -lh 和 du -sh 有什么区别?

ls -lh 和 du -sh 有什么区别?
$ ls -lh file1.tar

-rw-r--r-- 1 wnice wnice 40K Aug  6 20:41 file1.tar

$ du -sh file1.tar

80K     file1.tar

为什么显示同一个文件的大小不同?请帮我理解一下

答案1

du命令显示磁盘空间有多少用过的对于给定的文件。

相反,该ls命令显示文件的大小。使用的空间可能大于文件大小,具体取决于使用的文件系统。

例如,我们可以像这样创建一个大小为 1 字节的文件(文件中只有一个换行符):

echo > tmp.txt

ls -l然后使用显示一个字节大小的命令检查其大小:

ls -l tmp.txt 
-rw-r--r-- 1 elias elias 1 aug  6 17:50 tmp.txt

然后使用 du 检查已用空间:

du -h tmp.txt 
4,0K    tmp.txt

因此,在这个例子中,虽然文件大小只有一个字节,但使用的磁盘空间是4千字节。

相关内容