ls ,是
类Unix系统中的指令,用于列出文件和目录,是英文list的缩写。此命令最早产生于
Multics系统,并被后来的
Unix和
Linux系统所继承。
指令释义
ls命令将每个由Directory参数指定的目录或者每个由File参数指定的名称写到
标准输出,以及您所要求的和标志一起的其它信息。
如果不指定File或Directory参数,ls命令显示
当前目录的内容。
GNU/Linux与
BSD下都有此命令,但使用参数和语法略有不同。
ls指令可以说是
Linux下最常用的指令之一。它有许多的选项,下面列出了ls指令的绝大多数选项。
List information about the FILEs (the current directory by default).Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
用法:ls [选项]... [文件]...
运用举例:
1.列出具体文件 #ls -al //这个最常用,可是往往又不彻底符合要求,
2.列出一切
子目录的文件:#ls -R //上个指令仅仅列出了本目录下的一切目录和文件,可是目录下的文件不会循环的列出。
3.若是文件过多一屏看不完,怎么办?并且,关于想找到许多文件中的某个文件的姓名。
3.1分屏显现:#
ls -l|more //能在当时屏退出,很有用,但不能一页一页翻屏
#ls -l|less //能用pgup,pgdw 翻页,但不能在当时方位退出
3.2横向输出尽可能多的显现文件姓名:
#ls -m
-a 列出目录下的一切文件,包含以 . 最初的隐含文件。//常用
-m 横向输出文件名,并以“,”作分格符。
-c 输出文件的 i 节点的修正时刻,并以此排序。
-R 列出一切子目录下的文件。
-l 列出文件的具体信息。
-s 在每个文件名后输出该文件的巨细。
-k 以 k 字节的方式表明文件的巨细。
-i 输出文件的 i 节点的索引信息。
2.只显现目录:#ls -l |grep ^d 3.只显现非目录文件:#ls -l |grep ^[^d]
3.对输出文件进行各种排序;
3.1 依照字符序(default): #ls -l
3.2 依照修正时刻排序: #ls -t //近来修正在最上面
3.3 逆排序 : #ls -r
3.4 按文件巨细排序 :#ls -S //大文件的在上
3.5 依照
文件扩展名(最终一个.后的字符)排序: #ls -X
3.6 按数字排序 :#ls -lv
-t 以时刻排序。
-r 对目录反向排序
-f -U 对输出的文件不排序。
-X 以文件的
扩展名(最终一个 . 后的字符)排序。
-S 以文件巨细排序。
-u 以文件前次被拜访的时刻排序。
-n 用数字的 UID,GID 替代称号。
-o 显现文件的除组信息外的具体信息。
-p -F 在每个文件名后附上一个字符以阐明该文件的类型,“*”表明可执行的一般
文件;“/”表明目录;“@”表明符号连接;“|”表明FIFOs;“=”表明套接字(
sockets)。
-q 用?替代不行输出的字符。
-x 按列输出,横向排序。
暂时无用选项:
-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C言语里相同)的方式列出。//不常用
-d 将目录象文件相同显现,而不是显现其下的文件。
-e 输出时刻的悉数信息,而不是输出简略信息。 //没用
-g 无用。
-A 显现除 “.”和“..”外的一切文件。
-C 按列输出,纵向排序。
-G 输出文件的组的信息。
-L 列出连接文件名而不是连接到的文件。
-N 不约束文件长度。
-1 一行只输出一个文件。
--color=no 不显现五颜六色文件名
--help 在规范输出上显现协助信息。
--version 在规范输出上输出版别信息并退出
描述
ls 命令将每个由 Directory 参数指定的目录或者每个由 File 参数指定的名称写到标准输出,以及您所要求的和标志一起的其它信息。如果不指定 File 或 Directory 参数, ls 命令显示当前目录的内容。
在互斥对中指定多个选项不看成错误。每对中最后一个指定的选项确定
输出格式。
缺省情况下,ls 命令按照文件名的字母顺序显示所有信息。整理顺序由
环境变量 LANG 或 LC_COLLATE 环境变量确定。在
AIX当 ls 命令显示目录内容时,它不显示名称以 .(点)开头的文件项,除非使用了 -a 或者 -A 标志。如果命令由
root 用户执行,它缺省使用 -A 标志。
格式化输出有三种主要方式:
* 每行列出一项。
* 通过指定 -C 或 -x 标志以多列列出各项。当向 tty 输出时,-C 标志是缺省格式。如果文件或目录名太长,ls 命令显示单列输出。
* 通过指定 -m 标志可以以逗号分隔系列列出项。
要确定输出行中字符位置的数目,ls 命令使用环境变量 COLUMNS。如果没有设置此变量,命令获取显示的当前列值。如果使用这些方法,ls 命令还不能确定字符位置的数量,它就使用缺省值 80。
使用 -e 和 -l 标志所显示的方式解释如下:
如果第一个字符是:
d 此项为目录。
b 此项为块特殊文件。
c 此项为字符特殊文件。
l 此项为符号链接,或者指定 -N 标志,或者符号链接不指向现有文件。
p 此项为一个先进先出(FIFO)特殊文件。
s 此项为本地套接字。
- 此项为普通文件。
接下来的 9 个字符被分成 3 个集合,每个集合 3 个字符。第一组 3 字符集合显示所有者
许可权。下一组 3 字符集合显示了组中其它用户的许可权。最后 3 字符集合显示了访问此文件的其它任何人的许可权。每个集合中的三个字符各自表示了文件的读、写和执行权限。目录的执行权限让您可以搜索目录中的指定文件。
许可权表示
如下:
r 读
w 写(编辑)
x 执行(搜索)
如果文件有 set-group-ID 方式,那么组执行许可权字符是 s。如果文件有 set-user-ID 方式,则用户执行许可权字符是 s。如果方式位被设置为 01000(八进制)(请参阅 chmod 命令以获得此方式的含义),最后一个方式字符(通常 x 或者 -)是 T。如果没有设置相应的执行许可权,set-ID 的指示和方式位 01000 以
大写字母开头(分别为 S 和 T)。方式 t 表示
粘滞位是为文件或目录而设置的。
当使用 -e 标志时,其显示方式与使用 -l 标志一样,除了多出了第 11 个字符,其解释如下:
+ 表示文件有扩展安全性信息。例如,文件可能在方式中有扩展的
ACL、TCB 或者 TP 属性。
通过使用 aclget 命令,可以显示文件的
访问控制信息(ACL)。通过使用 chtcb 命令,可以显示 TCB 和 TP 属性的值。
- 表示文件没有扩展安全性信息。
当列出目录中
文件大小时,ls 命令显示块总数,包括间接块。
标志
-A 列出所有条目,除了 .(点)和 ..(点-点)。
-a 列出目录中所有项,包括以 .(点)开始的项。
-b 以
八进制 (
nn)
表示法显示非打印字符。
-c 使用
索引节点最近一次修改的时间,用以排序(当带 -t 标志使用时)或者用以显示(当带 -l 标志使用时)。该标志必须和 -t 或 -l 标志或者两者一起使用。
-C 以多列纵向排序输出。当往终端输出时,此为缺省方法。
-d 仅仅显示指定目录信息。目录和文件一样处理,这在当使用 -l 标志获取目录状态时非常有用。
-e
显示方式(包括
安全信息)、链接数目、
所有者、组、大小(按字节)、最近修改时间和每个文件名称。如果文件是特殊文件,大小字段包含主要和次要设备数目。如果文件是
符号链接,会打印所链接到的文件的路径名,其前有 ->(
减号,
大于号)符号。显示符号链接的属性。
-E 列出文件的保留空间、固定范围大小和范围分配标志信息。使用该标志时,必须指定 -l 标志。
-f 在每个存储槽中列出 Directory 参数指定的每个目录的名称。该标志关闭 -l、-t、 -s 和 -r 标志并且开启 -a 标志。列表的顺序就是项出现在目录中的顺序。
-F 如果文件是目录,在文件名后面放置一个 /(
斜杠),如果文件可执行,则放置一个 *(星号),如果文件为
套接字,则放置一个 =(
等号),如果为 FIFO,则放置一个 |(管道)符号,如果是符号链接,则放置一个 @。
注:只有在使用 -N 标志或者链接指向一个不存在的文件时,符号链接显示时才后跟 ->。否则,显示
目标文件的有关信息。通过输入 ls -f 命令,也可以调用此选项。
-g 与使用 -l 标志时显示同样的信息,除了 -g 标志禁止显示所有者和符号链接信息。
-H 如果在
命令行上指定了
引用类型目录文件的符号链接,ls 命令将文件信息和
文件类型估计为由链接引用的文件的信息和类型,而非链接本身;然而,ls 命令将写链接本身的名称,而非由链接引用的文件。
-i 显示每个文件报告第一列中的索引节点数目。
-L 列出链接引用的文件或目录内容。此为缺省操作。后跟符号链接。如果使用 -l 选项,-N 选项就成为
缺省值,不后跟符号链接。当使用 -l 选项时,仅有 -L 选项能够覆盖 -N 缺省值。
-l (L 的
小写)显示方式、链接数目、所有者、组、大小(按字节)和每个文件最近一次修改时间。如果文件是特殊文件,大小字段包含主要和次要设备数目。如果最近一次修改时间大于六个月之前,时间字段以 月份 日期 年份 的格式显示,然而六个月内修改的文件以 月份 日期 时间 的格式显示。
如果文件是符号链接,打印所链接到的文件的路径名,其前跟 ->。显示符号链接的属性。-n、-g、和 -o 标志覆盖 -l 标志。
注意事项
1.
符号链接文件后跟一个箭头,然后是符号链接的内容。
2. 当使用 -l 选项时,通过执行 mk
passwd 命令,可以提高 ls 命令的执行性能。当目录包含不同用户拥有的文件时,这非常有用,比如 /tmp 目录。
-m 使用流输出格式(逗号分隔系列)。
-n -n 标志除显示用户和组 ID 而不是用户和组名称以外,它显示和 -l 标志同样的信息。
-N 当确定文件状态时,不跟在符号链接之后。
注:如果使用 -L 和 -N 两个标志,最后一个标志起作用。同样的,任何时候给定一个包含以 /(
斜杠)作为最后字符的符号链接,不管使用何种选项,后面都会跟有链接。
-o -o 标志除禁止显示组和符号链接信息之外,它显示和 -l 标志同样的信息。
-p 如果文件是目录,在每个文件名后面放置一个斜杠。当将 ls 命令的输出通过管道传递到 pr 命令时,这很有用,如下所示:
-r 反转排序顺序,适当的按字母逆向排序或者首先排序最旧的文件。
-s 按照千字节(包括间接块)给出每一项的大小。
-t 按照最近一次修改时间(最近的最先)而不是名称排序。
-u 使用最近访问时间,而不是最近修改时间用以排序(当使用 -t 标志)或者显示(当使用 -l 标志)。如果不和 -t 或 -l 标志或两者一起使用,则该标志无效。
-x 以多列格式横向排序输出。
-1
强制输出为每行一项格式。当输出没有定向到终端时,此为
缺省值。
退出状态
0 写所有文件成功。
>0 产生错误。
示例
列出所有文件,包括 .(点)、..(点点)和其他以点开头的文件。
2. 要显示详细信息,请输入:
显示一个长列表,包括关于 chap1 和 .profile 的详细信息。
3. 要显示有关目录的详细信息,请输入:
显示目录 . 和 manual 以及文件 manual/chap1 的长列表。不使用 -d 标志时,会列出 . 和 manual 目录中的所有文件,而不是关于目录本身的详细信息。
4. 要按照修改时间列出文件,请输入:
显示最近被修改文件的长列表,较旧的文件跟在后面。
文件
/usr/bin/ls 包含 ls 命令。
/etc/passwd 包含用户 ID。
/etc/group 包含组 ID。
/usr/share/lib/terminfo/* 包含终端信息。