ls -l有或没有-h只显示每个文件的(表观)大小,而不是它们的磁盘空间使用情况。
要查看磁盘空间使用情况,请使用ls -s. 然后,总和应该匹配。
请注意,该总数是列出的文件的总和。除非您使用-A,否则不会包含隐藏文件。如果您使用-a,则.和..都将(通常)也包括在内。请注意,如果同一个文件在列表中出现两次(例如因为它们是指向同一个文件的硬链接),它将被计算两次。
在符合 POSIX 的实现中,大小以 512 字节为单位。GNU ls(Ubuntu 附带的那个)使用 1024 字节单位,除非POSIXLY_CORRECT环境中有变量($LS_BLOCK_SIZE,$BLOCKSIZE或者该--block-size选项也可用于指定任意单位)。busyboxls总是使用 1024 字节单位。
例子:
$ truncate -s 15T a
$ echo > b
$ ls -s
total 4
0 a 4 b
$ ls -sl
total 4
0 -rw-rw-r-- 1 me me 16492674416640 Oct 4 21:53 a
4 -rw-rw-r-- 1 me me 1 Oct 4 21:53 b
$ POSIXLY_CORRECT=1 ls -sl
total 8
0 -rw-rw-r-- 1 me me 16492674416640 Oct 4 21:53 a
8 -rw-rw-r-- 1 me me 1 Oct 4 21:53 b
$ LS_BLOCK_SIZE=1 ls -sl
total 4096
0 -rw-rw-r-- 1 me me 16492674416640 Oct 4 21:53 a
4096 -rw-rw-r-- 1 me me 1 Oct 4 21:53 b
$ LS_BLOCK_SIZE=1 ls -sla
total 1638400
4096 drwxrwxr-x 2 me me 4096 Oct 4 21:53 ./
1630208 drwxr-xr-x 312 me me 1626112 Oct 4 21:54 ../
0 -rw-rw-r-- 1 me me 16492674416640 Oct 4 21:53 a
4096 -rw-rw-r-- 1 me me 1 Oct 4 21:53 b
$ ls -slah
total 1.6M
4.0K drwxrwxr-x 2 me me 4.0K Oct 4 21:53 ./
1.6M drwxr-xr-x 312 me me 1.6M Oct 4 21:55 ../
0 -rw-rw-r-- 1 me me 15T Oct 4 21:53 a
4.0K -rw-rw-r-- 1 me me 1 Oct 4 21:53 b
Run Code Online (Sandbox Code Playgroud)
看看a15TiB 大但不占用磁盘空间(这是一个稀疏文件),以及b1 个字节大但占用 4KiB 磁盘空间(使用一个文件系统块)。
请参阅为什么有这么多不同的方法来衡量磁盘使用情况?进一步阅读。
| 归档时间: |
|
| 查看次数: |
2407 次 |
| 最近记录: |