ls -a -l 显示包括隐藏文件(目录)信息,有3项,4096+4096+4096=3*4k=12k,故显示total 12。
关于第五个字段下文有解释。
使用ls -l命令查看目录下文件以及子目录的详细信息。
举例:
[php] view plain copy xyw@xyw-Eliot:~/test$ ls -l 总用量 48108 -rw------- 1 xyw xyw 19009993 11月 7 16:42 C++ Primer, Fifth Edition.pdf -rw-rw-r-- 1 xyw xyw 27616196 11月 8 10:08 test3.zip -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 -rw------- 1 xyw xyw 70 11月 7 16:27 virus -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 总用量 2836 -rw-rw-r-- 1 xyw xyw 48 9月 12 09:15 list.txt -rw-rw-r-- 1 xyw xyw 90112 8月 27 22:52 tcpdump中文手册.doc -rw-rw-r-- 1 xyw xyw 39767 11月 26 2012 北邮校徽.jpg -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 总用量 2840 -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt.ln -rw-rw-r-- 1 xyw xyw 90112 8月 27 22:52 tcpdump中文手册.doc -rw-rw-r-- 1 xyw xyw 39767 11月 26 2012 北邮校徽.jpg -rw-rw-r-- 1 xyw xyw 2765381 9月 5 21:44 浪潮之巅.pdf现在lsit.txt的第二个字段为2,此时list.txt和list.txt.ln互为硬链接,他们指向同一个文件,无论修改哪一个文件,另一个也会作相同的变化。
[plain] view plain copy xyw@xyw-Eliot:~/test$ ls -i list.txt list.txt.ln 663463 list.txt 663463 list.txt.ln 使用ls -i 查看文件的节点号,可以看出,二者文件节点号相同,表名二者指向的都是同一个文件。如果已经知道某个文件有多个文件名,那么如何查找与它互为硬链接的这些文件呢?
方法:首先使用ls -i 查找该文件的节点号;再使用find 命令根据节点号找出所有互为硬链接的文件。举例:
[plain] view plain copy xyw@xyw-Eliot:~/test$ ls -i list.txt 663463 list.txt xyw@xyw-Eliot:~/test$ find -inum 663463 ./list.txt.ln ./list.txt 如果是一个目录,则第二个字段表示该目录的子目录数。举例:在test目录下新建一个目录test1,然后查看test1的第二个字段值:
[plain] view plain copy xyw@xyw-Eliot:~/test$ mkdir test1 xyw@xyw-Eliot:~/test$ ls -l 总用量 2844 -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt.ln -rw-rw-r-- 1 xyw xyw 90112 8月 27 22:52 tcpdump中文手册.doc <strong>drwxrwxr-x 2 xyw xyw 4096 11月 12 18:42 test1</strong> -rw-rw-r-- 1 xyw xyw 39767 11月 26 2012 北邮校徽.jpg -rw-rw-r-- 1 xyw xyw 2765381 9月 5 21:44 浪潮之巅.pdf 第二个字段为什么是2呢,我们不是新建的一个空目录吗?因为每个目录都有一个指向它本身的子目录"."和指向它上级目录的子目录“..”,这两个默认子目录是隐藏的,我们可以通过ls -al命令发现它们。 [plain] view plain copy xyw@xyw-Eliot:~/test$ cd test1/ xyw@xyw-Eliot:~/test/test1$ ls -al 总用量 8 drwxrwxr-x 2 xyw xyw 4096 11月 12 18:42 . drwxrwxr-x 3 xyw xyw 4096 11月 12 18:42 .. 字段3:文件拥有者字段4:文件拥有者所在的组
字段5:文件大小(字节) (4096=1024*4=4k),这就是第五个字段
如果是一个目录,则表示该目录的大小,而不是目录以及目录下文件的大小,这个要注意。例如:
test目录:
[plain] view plain copy drwxrwxr-x 3 xyw xyw 4096 11月 12 18:42 test 4096个字节,而test文件夹以及目录下所有文件的大小为:2.9M [plain] view plain copy xyw@xyw-Eliot:~$ ls -l test 总用量 2844 -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt.ln -rw-rw-r-- 1 xyw xyw 90112 8月 27 22:52 tcpdump中文手册.doc drwxrwxr-x 2 xyw xyw 4096 11月 12 18:42 test1 -rw-rw-r-- 1 xyw xyw 39767 11月 26 2012 北邮校徽.jpg -rw-rw-r-- 1 xyw xyw 2765381 9月 5 21:44 浪潮之巅.pdf 根据上文的介绍,我们知道总用量2844是test目录下的文件以及目录列表第5个字段的和,根据介绍,对于目录而言第5个字段是目录的大小而不是目录及其子目录所有文件的大小,所以如果我们向test1中添加文件,那么使用ls -l test所得的结果应该不会发生改变,实际测试: [plain] view plain copy xyw@xyw-Eliot:~$ ls -l test 总用量 2844 -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt.ln -rw-rw-r-- 1 xyw xyw 90112 8月 27 22:52 tcpdump中文手册.doc drwxrwxr-x 2 xyw xyw 4096 11月 12 19:00 test1 -rw-rw-r-- 1 xyw xyw 39767 11月 26 2012 北邮校徽.jpg -rw-rw-r-- 1 xyw xyw 2765381 9月 5 21:44 浪潮之巅.pdf xyw@xyw-Eliot:~$ ls test/test1/ xyw@xyw-Eliot:~$ cp Linux_101.pdf test/test1/ xyw@xyw-Eliot:~$ ls test/test1/ Linux_101.pdf xyw@xyw-Eliot:~$ ls -l test 总用量 2844 -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt -rw-rw-r-- 2 xyw xyw 48 9月 12 09:15 list.txt.ln -rw-rw-r-- 1 xyw xyw 90112 8月 27 22:52 tcpdump中文手册.doc drwxrwxr-x 2 xyw xyw 4096 11月 12 19:01 test1 -rw-rw-r-- 1 xyw xyw 39767 11月 26 2012 北邮校徽.jpg -rw-rw-r-- 1 xyw xyw 2765381 9月 5 21:44 浪潮之巅.pdf 参考:http://hi.baidu.com/luyunwen/item/fedc5a1559f6a0f8ddeeca15