ls

显示目录中的文件列表


语法格式

ls [-aAbBcCdfFgGHiIklLmnNopqQrRsStuUvxXZ1] [gnu-opts] [files]
ls [--help] [--version]

命令简介

ls命令用于显示指定目录或当前目录中的文件列表。其中,files是一个或多个目录(或文件)。如果未指定任何目录或文件,默认的目录为当前目录。

如果未指定任何选项与参数,通常仅逐列显示当前目录中的文件和子目录的名字,忽略文件名首字符为句点“.”的隐藏文件。如果文件名中含有控制字符等不可打印字符,则使用问号“?”替代相应的字符。如果未指定任何排序选项,显示的文件列表将会按照文件名的字符编码排序,或逐行显示,逐列(垂直排序)显示。

命令选项

-a, --all  列出所有文件,包括文件名首字符为句点“.”的隐藏文件。

-A, --almost-all  类似于“-a”选项,但禁止输出当前目录“.”和父目录“..”。

-b, --escape  以八进制数值编码的转义字符序列显示不可打印的字符。

-B, --ignore-backups  禁止显示文件名含有波浪号“~”后缀的备份文件。

-c, --time=ctime, --time=status  与“-l”选项一起使用时,使用文件信息节点的状态修改时间取代文件的最近访问时间。与“-t”选项一起使用,显示文件列表时,按照文件信息节点的状态修改时间排序。

-C, --format=vertical  逐列显示每个文件,垂直排序。这是默认的选项。

-d, --directory  类似于普通文件,仅仅显示目录名本身,而不显示其中的文件列表。如果命令行文件名参数含有符号链接文件,仅显示符号链接文件本身,而不显示其引用的文件,除非指定了“-H”或“-L”等选项。

-f  类似于“-a”选项,但仅显示文件的名字,省略排序步骤,按文件在目录文件中的自然存储位置依次显示,禁止用颜色表示文件。

-F, --classify  在显示的文件名后面附加一个文件类型标志,如“*”(可执行文件)、“/”(目录)、“=”(套接字)、“@”(符号链接文件)或“|”(管道文件)等,空表示普通文件。

-g  类似于“-l”选项,但在长列表的输出中省略文件属主一列。

-G, --no-group  类似于“-l”选项,但在长列表的输出中省略用户组一列。

-h, --human-readable  类似于“-l”选项,但采用容易阅读和理解的形式(如1.2K或6M等)表示文件的大小。其中K表示1024(而非1000)个字节,M表示10242(而非10002)个字节,如此类推。

-H, --dereference-command-line  如果命令行文件参数是一个指向目录的符号链接文件,则显示其引用目录中的文件。如果命令行文件参数是一个指向文件的符号链接文件,则显示其引用的文件。

-i, --inode  显示每个文件的信息节点号。

-I pattern, --ignore=pattern  禁止输出文件名匹配指定Shell文件名模式(非正则表达式)的文件,即使指定了“-a”或“-A”选项。

-k  以1024个字节(常规的KB)为单位显示文件的大小,相当于指定了“--block-size=1K”选项。

-l, --format=long, --format=verbose  采用长列表形式显示文件。除了文件名之外,还会显示文件的类型、访问权限、链接计数、文件属主、用户组、文件大小和访问时间等。除非另有指定,文件大小以字节为单位。在输出的信息中,第一列的第一个字符表示文件类型,如“-”(普通文件)、“b”(块特殊文件)、“c”(字符特殊文件)、“d”(目录)、“l”(符号链接文件)、“p”(管道文件)和“s”(套接字)等。第一列从第二个字符开始的9个字符分为三组,分别表示文件属主、用户组和其他人的读(“r”)、写(“w”)与执行(“x”)权限。“-”表示缺乏相应的权限。每一组的执行位(“x”)可能是“s”(表示文件的setuid或setgid以及执行位已设置)、“S”(表示文件的setuid或setgid位已经设置,但执行位未设置)、“t”(表示文件的粘性位与第三组的执行位均已设置)和“T”(表示文件的粘性位已经设置,但第三组的执行位未设置)等。此外,如果系统启用了SELinux,且文件设置了SELinux安全属性,第一个字段后面还会附加一个句点“.”。在输出文件名列表之前,第一行的“total blocks”表示目录中所有文件已分配数据块的总和。通常,一个数据块为1KB。如果指定了“-h”等选项,计数单位也随之而变。注意,每个硬链接文件是单独计算的。

-L, --dereference  如果文件是一个符号链接文件,显示的文件名是符号链接文件本身,但显示的文件属性均来自其引用的文件。当与“-R”选项一起使用时,对于递归过程中遇到的每一个指向目录的符号链接文件,列出其相应目录中的文件。

-m, --format=commas  使用逗号“,”作为分隔符,逐个逐行地显示每个文件名。

-n, --numeric-uid-gid  类似于“-l”选项,但以用户ID和用户组ID分别取代用户名和用户组名。

-N, --literal  按原始文件名显示,文件名中的不可打印字符以问号“?”表示。

-o  类似于“-l”选项,但省略用户组一列。

-p, --indicator-style=slash  在目录名之后附加一个斜线“/”字符,以示区别。

-q, --hide-control-chars  使用问号“?”替代文件名中的不可打印字符。

-Q, --quote-name  在文件名前后加双引号,以八进制数字编码的转义字符形式显示文件名中的不可打印字符。

-r, --reverse  按字符编码顺序反向排序。

-R, --recursive  递归地列出每个子目录中的文件。

-s, --size  在最左边增加一列,显示每个文件已分配的存储空间,存储空间按1KB的数据块计数。如果指定了“-h”等选项,存储单位也随之而变。

-S, --sort=size  按照文件的大小排序,文件越大位置越靠前。

-t, --sort=time  按照文件的最近修改时间排序,时间越新位置越靠前。

-T cols, --tabsize=cols  使用指定的数值取代默认值8作为制表符的递进定位度量。

-u, --time=atime, --time=access, --time=use  与“-l”选项一起使用时,显示文件的访问时间。与“-t”选项一起使用,显示文件列表时,按照文件的最近访问时间排序。

-U, --sort=none  省略常规的排序步骤,只需按照文件在目录中的自然存储顺序依次列出即可。

-v, --sort=version  按照文件名中的版本数字排序。

-w cols, --width=cols  使用指定的列宽(而非默认的列宽)显示文件(的属性字段)。

-x, --format=across, --format=horizontal  类似于“-C”选项,但采用逐行多列的方式显示每个文件,水平排序。

-X, --sort=extension  按照文件扩展名的字符编码顺序依次列出文件。

-1, --format=single-column  每行仅显示一个文件。

--author  同“-l”选项一起使用时,增加一列显示每个文件的作者名。

--block-size=size  使用指定字节数的数据块作为文件大小的计量单位。指定的size可以是KB(1000)、K(1024)、MB(10002)、M(10242)、GB(10003)或G(10243)之一(前面可以加一个整数)。其他可用的单位还有T、P、E、Z和Y,其表示方法类似。

--color[=when]  利用彩色字符显示文件名以区分文件类型。其中的when可设置为默认的always(总是采用彩色输出)、never(禁止彩色输出)或auto(根据终端类型自动确定)。

--file-type  类似于“-F”选项,但省略“*”标志。

--format=word  按照指定的格式显示文件列表,其中,across相当于“-x”选项,commas相当于“-m”选项,horizontal相当于“-x”选项,long、single-column和verbose均相当于“-l”选项,vertical相当于“-C”选项。

--full-time  类似于“-l”选项,但显示的时间信息更完整。

--group-directories-first  首先列出目录,然后再列出文件。

--si  类似于“-h”选项,但使用1000(而非1024)作为递进单位。

--hide=pattern  禁止输出文件名匹配指定Shell文件名模式(非正则表达式)的文件,但在指定了“-a”或“-A”选项时无效。Shell文件名模式仅支持“?”、“*”或“[ ]”等通配符,且不能使用任何通配符匹配文件名首字符的句点“.”。

--show-control-chars  如果文件名含有控制字符等不可打印的字符,按其本来面目显示。

--sort=word  按照指定的方法排序,而非默认的文件名排序。其中word可以指定作none(相当于“-U”选项)、extension(相当于“-X”选项)、size(相当于“-S”选项)、time(相当于“-t”选项)或version(相当于“-v”选项)。

--time=word  与“-l”选项一起使用时,显示指定的时间,而非默认的修改时间。其中word可以指定作atime(类似于“-u”选项,显示访问时间)、access(访问时间)、use(访问时间)、ctime(类似于“-c”选项,显示信息节点的状态改变时间)或status(信息节点的状态改变时间)。与“--sort=time”选项一起使用时,按照这里指定的时间排序显示。

SELinux选项

--lcontext  显示文件的SELinux安全属性(完整形式,在“-l”选项的基础上增加了SELinux安全属性)。

-Z, --context  显示文件的SELinux安全属性(简短形式,显示文件的模式、用户、用户组、SELinux安全属性和文件名)。

--scontext  仅显示文件的SELinux安全属性与文件名。

应用实例

1. 显示当前目录中的文件列表。

$ ls -l

2. 按照文件的最近访问时间排序,显示当前目录中的文件列表。

$ ls -lt

3. 显示当前目录中的文件列表,包括隐藏的文件。

$ ls -la

4. 显示当前目录中的文件列表,包括隐藏的文件。同时显示每个文件的信息节点。

$ ls -ail

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z