站长资源操作系统
Linux中ls命令的参数与返回结果完全解析
ls命令主要就是用来陈列出目录的详细信息.
在默认情况下是列出当前目录下的文件信息(不包含以.开头的文件, 文件夹),同时按字母顺序来排列条目.
语法如下
复制代码代码如下:
ls [OPTION]... [FILE]...
参数介绍 (不包含过于生僻的)
-a, --all 同时显示出以.开头的内容,包括.目录(当前目录)和..目录(父目录).
-A, --almost-all 同时显示出以.开头的内容,不包括.目录和..目录.
--author 在使用-l参数时同时显示出文件创建者.
-B, --ignore-backups 不显示以~结尾的文件(备份文件).
-c (默认)按最近修改时间来排列显示条目,新的在前面.-lt按最近修改时间排列条目,并显示修改时间.-l显示修改时间,但按字母顺序排列.
-C 一列列的列出条目.
--color[=WHEN] 设置是否用颜色区分条目类别,WHEN可以为never,always和auto.never和always都很明了,auto是指标准输出和terminal绑定时才显示颜色.颜色由环境变量LS_COLORS决定.
-d, --directory 之列出目录条目,且不列出快捷方式.
-f 不排序列出,启用-aU,同时禁用-ls和--color.
-g 类似-l,但不显示除所有者.
-G, --no-group 在-l中不列出组名.
-h, --human-readable 在-l中以更易理解的方式列出文件大小. (e.g., 1K 20M)
--si 同上,但倍数是1000而不是1024
-i, --inode 显示出每个条目的index number.
-I, --ignore=PATTERN 不列出符合shell样式的条目.
--hide=PATTERN 但是会被-a或-A覆盖.
-l 以详细列表的模式展示信息.
-m 所有项目用逗号分隔显示.
-n, --numeric-uid-gid 类似-l,同时列出用户和分组信息.
-o 类似-l,但不列出组信息.
-p, --indicator-style=slash 在目录后面加上/
-r, --reverse 反向排序显示.
-R, --recursive 列出所有子目录.
-s, --size 显示出每个文件被分配的空间.
-S 按大小来排序文件.
--sort=WORD 根据WORD来排序,可以为none,extension,size,time和version.
--time=WORD 在-l里,根据WORD来替代修改时间,可以为atime,access,use,ctime,status.
-t 根据修改时间排序,新的在前面.
-U 不排序,根据系统原有顺序排列.
-v 根据版本号排列.
-x 按行的顺序排列.
-X 根据扩展名排序.
-1 一行只显示一个项目.
--help 帮助信息.
--version 版本信息.
返回值
0 正常.
1 小问题(e.g., 不能进入子目录).
2 严重问题(e.g., 不能进入命令行参数显示的目录).
ls -l的结果说明
使用-l选项,可以以长格式的方式显示目录内容,如:
在此输出结果中,总共显示出七列内容:
第一列为文件种类及权限。此列共有10个字符,其中第一个字符表示文件的种类。即,-表示是普通文件,d表示为目录,c表示为字符设备,b表示为块设备。而紧跟其后的10个字符,可以分为3块,每3个字符为一块,表示了此文件(目录)的属主、属组及others的权限。其中,r表示read,w表示write,x表示execute,-表示无权限。
如,上图中的第一行,-rw-------,表示这是一个普通文件,文件的属主有读取和写入的权限,文件的属组无权限,others无权限。
第二列表示硬链接个数(文件每增加一个硬链接,数字会增加1,默认从1开始,1表示无硬链接文件,如果是一个目录,它的默认值应该是2。目录是不能做硬链接的)。
第三列为文件(目录)的属主。
第四列为文件(目录)的属组。
第五列为文件(目录)的大小,单为为字节。
第六列为文件(目录)创建时间或最后一次访问时间,顺序为月、日、时间,如果该时间离现在过久,则直接显示年份。
第七列为文件名。
由于ls –l命令比较常用,在某些发行版中,已经将ll命令定义为ls –l的别名了。
ls常用选项
ls 显示目录的内容时,会将文件按a到z的字母顺序显示,优先级如下:
数字
a-z
A-Z
也就是说如果不加任何排序的选项,文件名第一个字母是数字的,将优先显示;其次才是A-Z,然后才是a-z。我们可以加不同的选项以排序显示:
按文件的大小排序,-S选项;
按最后访问的时候排序,要用到-t选项;
根据扩展名进行排序,要用到选项 -X ;
递归显示目录的文件,要用到-R选项;
递归显示目录下的所有文件,如果该目录下有子目录,也会把子目录的文件一并显示出来。
ls输出内容在终端显示颜色的选项 --color;
在一般的情况下,ls输出内容是有颜色的,比如目录是蓝色,压缩文件是红字的显示。如果没有颜色,可以加上选项。当然也可以去掉颜色。
--color=never 表示输出结果时没有彩色
--color=auto 表示自动
--color=always 表示输出内容有彩色
通配符在ls命令中的应用
* 代表0个或多个字符,而[]内部包括任何字符,而?代表任何单个字符。
比如我们显示在/目录下的所有以m开头的文件: