ls 命令:第一行是什么意思?

oli*_*206 31 ls shell

当我这样做时ls -l

calico@A000505:~/Documentos$ ls -l
total 2020
-rwxr-xr-x 1 calico calico    8559 2010-11-16 11:12 a.out
-rwxrw-rw- 1 smt    smt    2050138 2010-10-14 10:40 Java2.pdf
-rwxrw-rw- 1 ocv    ocv        234 2010-11-16 11:11 test.c
Run Code Online (Sandbox Code Playgroud)

但“2020 年总计”是什么意思?我只有 3 个文件,所以它不是文件或目录的数量,我想也不是大小。那是什么?

Jul*_*ano 27

目录中文件使用的 1kB 块数,非递归。

使用ls -lh有一些更有意义的输出。

  • 更准确地说,在大多数实现中,这是包含在目录列表中的文件使用的块总数(比较 `ls -l ~` 与 `ls -la ~` 和 `ls -lA ~`)。使用 GNU 工具,块大小为 1kB,但根据 POSIX 和大多数其他当前实现,块大小为 512B。 (5认同)

Eri*_*ski 15

ls -al 中的“总计”是什么意思

很好的问题,这意味着您要注意细节。我会举例说明。在我的主目录下/home/el有一个名为 tmpdir 的目录,其下有文件。我更改到该目录并执行ls -al

el@angeliqe ~/tmpdir $ ls -al
total 20
drwxrwxr-x 4 el users 4096 Dec 21 11:45 .
drwx--x--x 9 el users 4096 Dec 21 11:45 ..
drwxrwxr-x 2 el users 4096 Dec 21 11:45 dirWithFiles
drwxrwxr-x 2 el users 4096 Dec 21 11:44 emptydir
-rw-rw-r-- 1 el users  182 Dec 21 11:45 myfile.txt
Run Code Online (Sandbox Code Playgroud)

它说'总共20'。这转化为:“tmpdir 为所有目录和文件使用磁盘上的 20K 空间”。

使用 -h 选项,您告诉它以人类可读的形式提供给您:

el@angeliqe ~/tmpdir $ ls -alh
total 20K
drwxrwxr-x 4 el users 4.0K Dec 21 11:45 .
drwx--x--x 9 el users 4.0K Dec 21 11:45 ..
drwxrwxr-x 2 el users 4.0K Dec 21 11:45 dirWithFiles
drwxrwxr-x 2 el users 4.0K Dec 21 11:44 emptydir
-rw-rw-r-- 1 el users  182 Dec 21 11:45 myfile.txt
Run Code Online (Sandbox Code Playgroud)

有趣的是,一个没有任何内容的目录也占用了 8K 空间,在我的例子emptydir中它没有任何内容,但显示为使用 8K

el@angeliqe ~/tmpdir/emptydir $ ls -al
total 8
drwxrwxr-x 2 el users 4096 Dec 21 11:44 .
drwxrwxr-x 4 el users 4096 Dec 21 11:45 ..
Run Code Online (Sandbox Code Playgroud)

添加一个空目录证明目录占用4K:

el@angeliqe ~/tmpdir/emptydir $ ls -alh
total 12K
drwxrwxr-x 3 el users 4.0K Dec 21 11:54 .
drwxrwxr-x 4 el users 4.0K Dec 21 11:45 ..
drwxrwxr-x 2 el users 4.0K Dec 21 11:54 blah
Run Code Online (Sandbox Code Playgroud)

另一个要调查的命令是du

el@angeliqe ~/tmpdir/emptydir $ du
4       ./blah
8       .
Run Code Online (Sandbox Code Playgroud)

此外,您可以查看特定深度的文件大小:

el@angeliqe ~ $ du -h --max-depth=1
12K     ./.ssh
4.0K    ./my_recycle_bin
8.0K    ./.vim
13G     ./gnuoctbluehost
24K     ./tmpdir
48K     ./.subversion
152K    ./.cpan
13G     .
el@angeliqe ~ $
Run Code Online (Sandbox Code Playgroud)


sob*_*3ch 5

没有人提到-s选项(?)。来自man ls

-s, --size print the allocated size of each file, in blocks

.. 所以如果你列出,ls -s那么你将获得当前目录中每个目录和文件的块数。当你总结它时,你会得到与total:你在上面看到的完全相同的数字ls -l

额外:要获得块大小,请检查.