zoukankan      html  css  js  c++  java
  • linux ls -l 详解

    以root的家目录为例:

    可以看到,用ls -l命令查看某一个目录会得到一个7个字段的列表。

    第1行:总计(total)

    Total后面的数字是指当前目录下所有文件所占用的空间总和。可以使用ls –lh查看,也可使用ls –alh查看。

    第1字段: 文件属性字段

    -rw-r--r--.   1 root root  100 12月 19 19:28 daemon.log

    文件属性字段总共有10个字母组成;第一个字符代表文件的类型

    字母“-”表示该文件是一个普通文件

    字母“d”表示该文件是一个目录,字母"d",是dirtectory(目录)的缩写

    注意:目录或者是特殊文件,这个特殊文件存放其他文件或目录的相关信息

    字母“l”表示该文件是一个链接文件。字母"l"是link(链接)的缩写,类似于windows下的快捷方式

    字母“b”的表示块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件。没有文件大小,只有一个主设备号和一个辅设备号。一次传输数据为一整块的被称为块设备,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块的大小为512字节)

    字母为“c”表示该文件是一个字符设备文件(character),一般置于/dev目录下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最小单位为一个字节。

    字母为“p”表示该文件为命令管道文件。与shell编程有关的文件。

    字母“s”表示该文件为sock文件。与shell编程有关的文件。

    第1字符的后面9个字母表示该文件或目录的权限位。

    r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)

    其中前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。

    第2字段:文件硬链接数

    -rw-r--r--.   1 root root  100 12月 19 19:28 daemon.log

    如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数,

    第2字段的值为1,说明这个文件只有daemon.log这一个文件名。即只有一个指向该链接的硬链接。。

    如果使用ln,做一个指向该文件的硬链接再查看该文件,该文件的第2字段就会变成2

    此时daemon.log 和daemon称为互为硬链接。他们指向同一个文件,无论是修改哪一个文件,另一个里也做相应的变化,因为实际上他们指向同一个文件(即同一文件的不同文件名)

    互为硬链接的文件具有相同的文件节点。

    可以看出,这两个文件具有相同的文件节点号:162302

    可以设置符号链接(软链接),格式如下

    ln –s 源文件 目标链接文件

    注意:软链接时文件节点号不一样:

    如果知道一个文件有多个文件名(链接文件)如何查找他的其他文件名分布在什么地方呢?

    可以先用ls -i 获得它的节点号,然后用find查找,如 /home/zzw/Desktop/网设大作业/第一次 要查找与它互为硬链接的文件

    得到它的节点号为 207131084

    再用find查找:

    这样就得到了同一个文件的不同文件名的位置

     (此处文件只有一个文件名)

    第2字段: 链接占用的节点

    -rw-r--r--.   1 root root  100 12月 19 19:28 log ->daemon.log

    该字段文件占用一个节点,属于软链接(符号链接)

    如果是一个目录,则第2字段表示该目录所含子目录的个数。

    新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录。为什么新建的目录下面会有两个子目录呢?

    因为每一个目录都有一个指向它本身的子目录"。" 和指向它上级目录的子目录"。。",这两个默认子目录是隐藏的。ls -a可以看到

    每次在目录下新建一个子目录,该目录第2字段的值就增1,但是新建一个普通文件该字段值不增加。

    第3字段:文件(目录)拥有者

    -rw-r--r--.   1 root root  100 12月 19 19:28 log ->daemon.log

    该字段表示此文件是属于哪个用户。linux类系统都是多用户系统,每个文件都有它的拥有者。只有文件的拥有者才具有改动文件属性的权利。

    当然, root用户具有改动任何文件属性的权利。对于一个目录来说,只有拥有该目录的用户,或者具有写权限的用户才有在目录下创建文件的权利

    如果某一个用户因为某种原因,被删除,而该用户的文件还存在,那么用ls -l 查看该文件将显示一个代表用户存在前ID号的数字。

    先创建一个用户test,将其加入wang用户组,并用su切换,使用ls –l查看文件拥有者,随即删除用户test,用root进入test家目录,查看刚刚创建的文件testing。

    可以看到,第三字段成了一个数字,这个数字是原test用户的ID号。因为文件系统对每个文件记录文件所有者的ID,而非用户名。

    第4字段:文件(目录)拥有者所在的组

    -rw-r--r--.   1 root root  100 12月 19 19:28 log ->daemon.log

    一个用户可以加入很多个组,但是其中有一个是主组,就是显示在第4字段的名称。

    可以在useradd的时候用-g指定该用户所在的主组,用-g指定其他组

    格式如下:useradd –g 组名 用户名

    第5字段: 文件所占用的空间(以字节为单位)

    -rw-r--r--.   1 root root  100 12月 19 19:28 log ->daemon.log

    第5字段表示文件大小,如果是一个文件夹(目录),则表示该文件夹的大小。请注意是文件夹本身的大小,而不是文件夹以及它下面的文件的总大小。

    很多人不能理解文件夹是一个特殊的文件的含义,这样的话理解文件夹大小的含义就比较困难了。

    第6字段:文件(目录)最近访问(修改)时间

    -rw-r--r--.   1 root root  100 12月 19 19:28 log ->daemon.log

    文件创建的时间可以通过touch命令来修改。如:

    [root@localhost ~]# touch daemon.log

    可以把daemon.log的创建时间修改为当前时间,另外,一个文件还有最后访问时间,最后修改时间等属性。

    这些属性可以用ls 的其它参数显示出来。

    第7字段:文件名

    lrwxrwxrwx 1 root root 4 08-03 08:27 log->daemon.log

    如果是一个符号链接,那么会有一个 “->" 箭头符号,后面根一个它指向的文件名

    比如:

  • 相关阅读:
    vue开发chrome扩展,数据通过storage对象获取
    Vue手动集成less预编译器
    Google Translate寻找之旅
    Javascript Range对象的学习
    Javascript Promises学习
    SublimeText 建立构建Node js系统
    We're sorry but demo3 doesn't work properly without JavaScript enabled. Please enable it to continue.
    npm安装包出现UNMET DEPENDENCY报错
    (转载)命令行说明中格式 尖括号 中括号的含义
    Linux重启网卡服务Failed to start LSB: Bring up/down networking.
  • 原文地址:https://www.cnblogs.com/freinds/p/8074249.html
Copyright © 2011-2022 走看看