total信息表示使用ls -l命令后,该目录下所有文件及目录列表 第5个字段 的和(以k为单位),也就是该目录的大小。
ls -l显示只有1项目录,4096b=4k,所以显示total 4;

ls -a -l 显示包括隐藏文件(目录)信息,有3项,4096+4096+4096=3*4k=12k,故显示total 12。

关于第五个字段下文有解释。




ls -l 列表详解

原创  2013年11月12日 19:03:03
  • 1554

使用ls -l命令查看目录下文件以及子目录的详细信息。

举例:

[php]  view plain  copy
  1. xyw@xyw-Eliot:~/test$ ls -l  
  2. 总用量 48108  
  3. -rw------- 1 xyw xyw 19009993 11月  7 16:42 C++ Primer, Fifth Edition.pdf  
  4. -rw-rw-r-- 1 xyw xyw 27616196 11月  8 10:08 test3.zip  
  5. -rw------- 1 xyw xyw  2580864 11月  7 16:41 Time.Management.-.The.Manager's.Guide.to.Effective.Meetings.-.B.J.Streibel.(McGraw-Hill).-.2003.pdf  
  6. -rw------- 1 xyw xyw       70 11月  7 16:27 virus  
  7. -rw------- 1 xyw xyw    39767 11月  7 16:27 北邮校徽.jpg  
第一行:总用量

该数值是目录下所有文件及目录列表第5个字段的和(以k为单位),也就是该目录的大小。

字段1:文件属性

文件属性字段由10个字母组成,第一个为“-”,表示为普通文件;为“d”,表示是一个目录(dirtectory的缩写);为“l”,表示是一个符号链接,类似于windows中的快捷键;

在UNIX类系统中,一个文件可以有多个文件名,一个文件的多个文件名之间互称为硬链接(hard link).这些文件头可以指向同一个文件,删除其中一个文件名并不能删除该文件,只有把指向该文件的所有硬链接都删除,这个文件所占用的空间才真正被释放,该文件才真正被删除.这和windows是有很大区别的,windows中不允许一个文件有两个以上文件名,如果存在这中情况,则被认为是文件系统错误。

开头为b的表示块设备文件(block),设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件.它的没有文件大小.
另外,如果第一个字母为c表示该文件是一个字符设备文件(character),一次传输一个字节的设备被称为字符设备,比如键盘,字符终端等,传输数据的最小单位为一个字节.一次传输数据为一整块的被称为块设备,比如硬盘,光盘等.最小数据传输单位为一个数据块(通常一个数据块的大小是512字节).

字段2:文件硬连接数或子目录数

如果一个文件不是目录,则这个字段表示这个文件具有的硬链接数,即这个文件有多少个文件名。举例:

[plain]  view plain  copy
  1. 总用量 2836  
  2. -rw-rw-r-- 1 xyw xyw      48  9月 12 09:15 list.txt  
  3. -rw-rw-r-- 1 xyw xyw   90112  8月 27 22:52 tcpdump中文手册.doc  
  4. -rw-rw-r-- 1 xyw xyw   39767 11月 26  2012 北邮校徽.jpg  
  5. -rw-rw-r-- 1 xyw xyw 2765381  9月  5 21:44 浪潮之巅.pdf  
lsit.txt这个文件的第二个字段现在为1,表示它只有一个文件名,现在我用ln命令作一个指向该文件的硬链接:

ln list.txt list.txt.ln

[plain]  view plain  copy
  1. 总用量 2840  
  2. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt  
  3. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt.ln  
  4. -rw-rw-r-- 1 xyw xyw   90112  8月 27 22:52 tcpdump中文手册.doc  
  5. -rw-rw-r-- 1 xyw xyw   39767 11月 26  2012 北邮校徽.jpg  
  6. -rw-rw-r-- 1 xyw xyw 2765381  9月  5 21:44 浪潮之巅.pdf  

现在lsit.txt的第二个字段为2,此时list.txt和list.txt.ln互为硬链接,他们指向同一个文件,无论修改哪一个文件,另一个也会作相同的变化。

[plain]  view plain  copy
  1. xyw@xyw-Eliot:~/test$ ls -i list.txt list.txt.ln  
  2. 663463 list.txt  663463 list.txt.ln  
使用ls -i 查看文件的节点号,可以看出,二者文件节点号相同,表名二者指向的都是同一个文件。

如果已经知道某个文件有多个文件名,那么如何查找与它互为硬链接的这些文件呢?

方法:首先使用ls -i 查找该文件的节点号;再使用find 命令根据节点号找出所有互为硬链接的文件。举例:

[plain]  view plain  copy
  1. xyw@xyw-Eliot:~/test$ ls -i list.txt  
  2. 663463 list.txt  
  3. xyw@xyw-Eliot:~/test$ find -inum 663463  
  4. ./list.txt.ln  
  5. ./list.txt  
如果是一个目录,则第二个字段表示该目录的子目录数。举例:

在test目录下新建一个目录test1,然后查看test1的第二个字段值:

[plain]  view plain  copy
  1. xyw@xyw-Eliot:~/test$ mkdir test1  
  2. xyw@xyw-Eliot:~/test$ ls -l  
  3. 总用量 2844  
  4. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt  
  5. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt.ln  
  6. -rw-rw-r-- 1 xyw xyw   90112  8月 27 22:52 tcpdump中文手册.doc  
  7. <strong>drwxrwxr-x 2 xyw xyw    4096 11月 12 18:42 test1</strong>  
  8. -rw-rw-r-- 1 xyw xyw   39767 11月 26  2012 北邮校徽.jpg  
  9. -rw-rw-r-- 1 xyw xyw 2765381  9月  5 21:44 浪潮之巅.pdf  
第二个字段为什么是2呢,我们不是新建的一个空目录吗?因为每个目录都有一个指向它本身的子目录"."和指向它上级目录的子目录“..”,这两个默认子目录是隐藏的,我们可以通过ls -al命令发现它们。

[plain]  view plain  copy
  1. xyw@xyw-Eliot:~/test$ cd test1/  
  2. xyw@xyw-Eliot:~/test/test1$ ls -al  
  3. 总用量 8  
  4. drwxrwxr-x 2 xyw xyw 4096 11月 12 18:42 .  
  5. drwxrwxr-x 3 xyw xyw 4096 11月 12 18:42 ..  
字段3:文件拥有者

字段4:文件拥有者所在的组

字段5:文件大小(字节) (4096=1024*4=4k),这就是第五个字段

如果是一个目录,则表示该目录的大小,而不是目录以及目录下文件的大小,这个要注意。例如:

test目录:

[plain]  view plain  copy
  1. drwxrwxr-x  3 xyw xyw      4096 11月 12 18:42 test  
4096个字节,而test文件夹以及目录下所有文件的大小为:2.9M

[plain]  view plain  copy
  1. xyw@xyw-Eliot:~$ ls -l test  
  2. 总用量 2844  
  3. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt  
  4. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt.ln  
  5. -rw-rw-r-- 1 xyw xyw   90112  8月 27 22:52 tcpdump中文手册.doc  
  6. drwxrwxr-x 2 xyw xyw    4096 11月 12 18:42 test1  
  7. -rw-rw-r-- 1 xyw xyw   39767 11月 26  2012 北邮校徽.jpg  
  8. -rw-rw-r-- 1 xyw xyw 2765381  9月  5 21:44 浪潮之巅.pdf  
根据上文的介绍,我们知道总用量2844是test目录下的文件以及目录列表第5个字段的和,根据介绍,对于目录而言第5个字段是目录的大小而不是目录及其子目录所有文件的大小,所以如果我们向test1中添加文件,那么使用ls -l test所得的结果应该不会发生改变,实际测试:

[plain]  view plain  copy
  1. xyw@xyw-Eliot:~$ ls -l test  
  2. 总用量 2844  
  3. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt  
  4. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt.ln  
  5. -rw-rw-r-- 1 xyw xyw   90112  8月 27 22:52 tcpdump中文手册.doc  
  6. drwxrwxr-x 2 xyw xyw    4096 11月 12 19:00 test1  
  7. -rw-rw-r-- 1 xyw xyw   39767 11月 26  2012 北邮校徽.jpg  
  8. -rw-rw-r-- 1 xyw xyw 2765381  9月  5 21:44 浪潮之巅.pdf  
  9. xyw@xyw-Eliot:~$ ls test/test1/  
  10. xyw@xyw-Eliot:~$ cp Linux_101.pdf test/test1/  
  11. xyw@xyw-Eliot:~$ ls test/test1/  
  12. Linux_101.pdf  
  13. xyw@xyw-Eliot:~$ ls -l test  
  14. 总用量 2844  
  15. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt  
  16. -rw-rw-r-- 2 xyw xyw      48  9月 12 09:15 list.txt.ln  
  17. -rw-rw-r-- 1 xyw xyw   90112  8月 27 22:52 tcpdump中文手册.doc  
  18. drwxrwxr-x 2 xyw xyw    4096 11月 12 19:01 test1  
  19. -rw-rw-r-- 1 xyw xyw   39767 11月 26  2012 北邮校徽.jpg  
  20. -rw-rw-r-- 1 xyw xyw 2765381  9月  5 21:44 浪潮之巅.pdf  
参考:http://hi.baidu.com/luyunwen/item/fedc5a1559f6a0f8ddeeca15

Logo

更多推荐