$ ls -lh file1.tar
-rw-r--r-- 1 wnice wnice 40K Aug 6 20:41 file1.tar
$ du -sh file1.tar
80K file1.tar
Run Code Online (Sandbox Code Playgroud)
为什么它显示相同文件的不同大小?请帮我理解
该du
命令显示给定文件使用了多少磁盘空间。
相反,该ls
命令显示文件的大小。使用的空间可能大于文件大小,具体取决于使用的文件系统。
例如,我们可以像这样创建一个大小为 1 字节的文件(文件中只有一个换行符):
echo > tmp.txt
Run Code Online (Sandbox Code Playgroud)
然后检查它的大小,使用ls -l
它显示一个字节的大小:
ls -l tmp.txt
-rw-r--r-- 1 elias elias 1 aug 6 17:50 tmp.txt
Run Code Online (Sandbox Code Playgroud)
然后使用 du 检查已用空间:
du -h tmp.txt
4,0K tmp.txt
Run Code Online (Sandbox Code Playgroud)
因此,在此示例中使用的磁盘空间为 4 KB,尽管文件大小仅为 1 个字节。