ls命令的-l选项:以长格式显示文件的详细信息。输出的信息分为多列,它们依次是:
文件类型与权限 链接数 文件主 文件组 文件大小 建立或最近修改的时间 文件名
例如:
例1:-rwxrwxr-x 1 ashley ashley 43 5月 9 18:43 test1
例2:lrwxrwxrwx 1 ashley ashley 26 5月 10 10:02 abc -> /home/ashley/test/homework
其中几个字段的含义说明如下:
①第一个字段中第1个字符表示文件类型,所用字符及其含义如下:
- -:普通文件。
- d:目录。
- b:块设备文件。
- c:字符设备文件。
- l:符号链接文件。
- s:套接字文件(socket)。
- p:命名管道文件(pipe)。
随后的9个字符表示文件的存储权限,其中前三个表示文件拥有者的权限,中间三个表示文件所属组用户拥有的权限,最后三个表示其他用户拥有的权限。各权限字符表示如下:
- r:读。
- w:写。
- x:执行。对于目录,表示可以访问该目录。
- s:当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组ID)。
- t:设置粘着标志位(留在内存,不被换出),若是目录,则在该目录中的文件只能被超级用户、文件主删除;若是可执行文件,则在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统能更快地装入该文件。
- -:表示没有设置权限。
在例1的第一个字段中,第一个字符“-”表示文件是普通文件,其后九个字符“rwxrwxr-x”表示文件拥有者ashley和文件所在组ashley中的用户对文件有读、写、执行权限,其他用户只有读和执行权限。
②第二个字段表示文件的链接数,准确来讲应该是硬链接数的个数,而不包括软链接数。
这一点可以通过实验来证实它只包括硬链接数:ln命令默认创建硬链接。如果想要创建软链接,可以通过ln命令加上-s选项来实现。
另外,如果一个文件没有额外的链接文件,那么其链接数为1。
③第三个字段表示文件主,也就是指创建这个文件的用户,这个比较容易理解。
④第四个字段表示文件组,一个用户可以加入很多个组,但是其中有一个是主组,就是显示在第四字段的名称。
⑤第五个字段表示的是文件大小,
对于普通文件:文件大小是文件的实际大小,以字节为单位;
对于符号链接文件:文件大小是其链接文件的路径名的字节数。
在例2中,文件类型为符号链接文件,链接文件的路径名“/home/ashley/test/homework”有26个字节,所以文件大小为26。
为了说明其大小确实不是等于目标文件大小的,此处贴一张图,可以看出目标文件的大小是为275字节的。
⑥第六个字段表示文件建立或最近修改的时间,这个字段也比较好理解,所以这里就不做过多解释。
⑦第七个字段表示文件名,
对于普通文件:该字段即为文件的名称;
对于符号链接文件:该字段显示的形式是符号链接文件名->目标文件的路径名。
以上为个人在学习linux时的一些收获,
部分来源于Linux教程(第5版)[孟庆昌],
也有部分参考这篇博客的内容。