命令功能
查看目标文件(包括目录)中所有文件信息,包括权限信息等。
命令格式
ls [选项] [目标文件]
选项参数
- -a , --all:查看目录下的所有文件,包括以
.
开头的隐含文件。 - -A, --almost-all: 同
-a
,但不列出.
和..
的目录。 - --author: 同
-l
一起使用,可以查看文件的作者。 - -b, --escape: 打印C格式的不可以显示字符。
- -B, --ingore-backups: 忽略带有
~
备份文件,比如打开word文件这种会产生一个临时文件 - --block-size=SIZE: 打印出以
SIZE
为单位的文件大小,比如--block-size=M
表示以M
为单位打印文件大小。 - -c:
- 同
-lt
一起使用,则按ctime
进行排序,并显示ctime
- 同
-l
一起使用,则按文件名称排序,并显示ctime
- 同
- -C: 表示按列显示文件,也就说文件顺序,先从向下再向右,正常顺序是从左往右按行来显示,而
-C
是从上到下按列来显示。 - --color[=WHEN]: 是否使用色彩分辨文件。
WHEN
可以是never
、auto
或always
其中之一,默认是always
。 - -d, --directory: 以目录形式显示目标文件,而不显示它的内容,比如它下面的文件。
- -D, --dired: 生成适合
Emacs
的dired
模式使用的结果。 - -f: 不对文件排序,对
-aU
生效,对-ls --color
无效。 - -F,--classify: 对文件显示进行标记,标记格式:
/
标记目录文件*
标记可执行文件@
标记链接文件=
标记网络socket
文件|
标记FIFO
的队列管道%
标记一类占位符形态的特殊文件,whiteout
文件
- --file-type: 同
-F
但是它不标记可执行文件。 - --full-time: 相当于
-l --time-style=full-iso
可以修改显示时间格式。 - -g: 同
-l
,但是不显示文件所有者。 - -G, --no-group: 不显示用户组信息。
- -h, --human-readable: 以容易理解的格式显示文件大小,比如
1K
、1M
、1G
等。 - --si: 同
-h
,但是文件大小进制不是1024
,而是1000
。 - -H, --dereference-command-line : 显示命令列中的符号链接指示的真正目的地,一般是链接,一般同
-l
一起使用。 - --dereference-command-line-symlink-to-dir: 同
-H
,但是它是指向目录的。 - --hide=PATTERN: 隐藏符合
PATTERN
正则表达式的文件。 - --indicator-style=WORD: 指定在每个项目名称后加上指示符号,
none
(默认),slash
(-p
操作),file-type
(--file-type
操作),classify
(-F
操作)。 - -i, --inode: 显示文件的索引号,也就是
node
号。 - -I, --ignore=PATTERN: 忽略符合
PATTERN
的文件。 - -k, --kibibytes=1K: 以
k
字节形式显示文件大小。 - -l: 将文件的详细信息显示出来,像权限,所有者,文件大小,时间等。
- -L, --dereference: 当显示符号链接的信息时,会显示符号链接所指示的对象而并非符号链接本身的信息。
- -m: 所有文件以逗号分隔,并把每行填满。
- -n, --numeric-uid-gid: 同
-l
,但是会把用户名和用户组名显示为ID
。 - -N, --literal: 显示文件的原生名称。
- -o: 同
-l
,但是不显示用户组信息。 - -p, --indicator-style=slash: 目录显示会在后面多一个
/
。 - -q, --hide-control-chars: 使用
?
来代替不可显示字符。 - --show-control-chars: 对不可显示字符按照原来方式显示。
- -Q, --quote-name: 将文件名用引号引起来。
- --quoting-style=WORD: 使用指定的类型来引用文件名,可以选有的
literal
、locale
、shell
、shell-always
、c
、escape
、clocale
等。 - -r, --reverse: 翻转文件,一般在排序时使用,逆序显示。
- -R, --recursive: 递归的方式打印文件,也就是说会递归的把目录以及目录的子目录等全部显示出来。
- -s, --size: 以块的数量显示文件大小。
- -S: 的按照文件大小排序。
- --sort=WORD: 按照指定属性进行排序,可以选有的:
none (-U)
(默认)、size (-S)
(文件大小)、time (-t)
(最后一次修改时间)、version (-v)
(版本)、extension (-X)
(扩展名)等。 - --time=WORD: 可以指定不同的时间类型。
- --time-style=STYLE: 显示的时间格式的调整。
- -t: 按照最后一次修改时间进行排序。
- -T, --tabsize=COLS: 修改
tab
的大小。 - -u:
- 同
-lt
一起使用,则显示访问时间而且依访问时间排序 - 同
-l
一起使用,则显示访问时间但根据名称排序 - 单独使用,则根据访问时间排序
- 同
- -U: 不进行排序,依文件系统原有的次序列出文件。
- -v: 按照版本进行排序。
- -w, --width=COLS: 使用屏幕宽度而不是使用当前值显示。
- -x: 按行方式显示文件而不是按照列方式。
- -X: 按照扩展名进行排序。
- -1: 一行一个文件名。
- --help: 显示帮助。
- --version: 显示版本信息。
命令显示字段含义
从上面可以看到主要有7列:
- 第一列共10位
- 第1位表示文档类型,
d
表示目录,-
表示文件,l
表示链接文件,d
表示可随机存取的设备,如U盘等,c
表示一次性读取设备,如鼠标、键盘等。 - 后9位,依次对应三种身份所拥有的权限,身份顺序为:
owner
、group
、others
,权限顺序为:readable
、writable
、excutable
。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可写,其他人没有任何权限。
- 第1位表示文档类型,
- 第二列表示链接数,表示有多少个文件链接到inode号码。
- 第三列表示文件拥有者。
- 第四列表示文件所属群组。
- 第五列表示文档容量大小,单位字节。
- 第六列表示文档最后修改时间,注意不是文档的创建时间。比如第一个是4月2日17:22。
- 第七列表示文档名称。以点
.
开头的是隐藏文档。
常用命令
-
列出
/opt
目录下的所有文件和目录详细信息,包括隐藏文件:ls -la /opt
-
列出
/opt
目录下所有文件和目录的详细信息:ls -lR /opt
-
只列出
/opt
目录下的所有目录详细信息:ls -l /opt | grep "^d"
-
只列出
/opt
目录下的所有目录:ls -F /opt | grep /$
-
列出
/opt
目录下的目录后添加/
,可执行文件后添加*
,链接文件后添加@
等:ls -F /opt
-
指定文件时间输出格式:
ls -tl --time-style=full-iso ls -ctl --time-style=long-iso
-
只列出
/opt
目录下的所有文件的绝对路径:ls | sed "s:^:`pwd`/:" find /opt | xargs ls -d