ls 指令 list files

ls 指令 list files

ls [选项] [目录或是文件...]

常用参数 -a -l -h -F -R


[目录或是文件...] 部分的解析:

命令中 ... 的意思是可以有多个,后文中的每个命令都适用,一般情况下,大多数的命令都默认支持多个参数,即批量操作

ls 默认输出当前路径下的文件和目录,如果为空即指当前目录

如果后面跟了指定的目录(可以有多个),则输出指定目录中的文件,注意,目录参数可以包含通配符,ls 会输出所有匹配目录下的文件

如果后面跟的是文件(可以有多个),则输出制定的文件名。

在查看此目录下是否有这个文件的时候会这么干,

除此之外,一般也会用通配符,会输出当前目录下所有名称匹配的文件,比如 ls -a *abc*

如果想要递归所有的子目录查询名称匹配的文件或文件夹,ls 做不到这一点,得用 find 命令,比如 find . -name '*abc*'

关于 find 命令,请查看《find 指令》


我们通常用 ls -l 查看文件的详细信息,llls -l 的别名(alias)。通过 alias 命令查看:

关于 alias 命令,请看《alias 别名》

ll 或者 ls -l 的输出结果:

下面来分析输出内容

第一列是文件类型 + 权限属性

第一个字母是文件类型:

后面 9 个字母三个为一段,分别对应 owner(所有者)、group(文件所在的组的其他用户)、others(其他组的用户)的权限。在 chmod 命令的参数中,ower 的权限使用 u 表示,u 为单词 user 的缩写,估计是为了跟 other 区分开,group 的权限用 g 表示,others 的权限用 o 表示:

还有两个不常见的权限:

第二列是目录/链接个数

对于目录文件,表示它的第一级子目录的个数。注意此处看到的值要减 2 才等于该目录下的子目录的实际个数。因为要加上 . 目录和 .. 目录。在 linux 下,. 目录表示当前目录,.. 目录表示上一级目录。

对于其他文件,表示指向它的链接(仅仅包含硬链接,不包含软链接)文件的个数。

第三列第四列表示文件的所有者和文件所在的组,

第五列表示文件或者文件夹大小

如果是文件,则表示该文件的大小,单位为字节。

如果是目录,则表示该目录符所占的大小,并不表示该目录下所有文件的大小。

第六列表示文件最后的修改日期

第七列表示文件名称

其中文件名的颜色也值得一说,

带颜色版本的解释: