【Linux】Linux 系统编程——ls 命令
1.命令概述
ls
命令是 Linux 和其他类 Unix 操作系统中最常用的命令之一。ls
命令是英文单词 list 的缩写,正如 list 的意思,ls
命令用于列出文件系统中的文件和目录。使用此命令,用户可以查看目录中的文件和子目录列表,且可以查看文件的权限(包括:目录、文件权限)、查看目录信息等。
2.命令格式
ls [选项] [文件或目录]
这里,“选项”用于修改命令的行为,而“文件或目录”是指定要列出哪些文件或目录。如果没有指定文件或目录,ls
默认会列出当前目录的内容。
3.常用选项
ls
是 Unix 和类 Unix 系统(如 Linux 和 macOS)中用于列出目录内容的基本命令。它有许多选项,可以用来修改它的输出。以下是 ls
命令的一个比较全面的选项列表。请注意,某些选项可能在特定系统或 ls
版本中不可用。
文件显示选项
-a
,--all
:显示所有文件,包括隐藏文件(以点开始的文件)。-A
,--almost-all
:与-a
类似,但不显示.
和..
。-B
,--ignore-backups
:不显示以波浪号 (~
) 结尾的备份文件。--color[=WHEN]
:使用颜色标记文件类型。WHEN
可以是never
、always
或auto
。
文件信息选项
-l
:长格式显示,包括文件类型、权限、链接数、所有者、组、大小和最后修改时间。-h
,--human-readable
:与-l
结合使用时,以易读格式(如 KB、MB)显示文件大小。-s
,--size
:显示每个文件分配的块大小。-i
,--inode
:显示每个文件的 inode 号。-o
:长格式显示,不包含文件组信息。-g
:长格式显示,不包含文件所有者信息。-n
,--numeric-uid-gid
:类似于-l
,但显示数字的用户 ID 和组 ID。--author
:长格式显示时包含作者信息。
排序选项
-t
:按最后修改时间排序。-S
:按文件大小排序。-X
:按文件扩展名排序。-v
:自然排序数字(1, 2, 10 而非 1, 10, 2)。-r
,--reverse
:反向排序。
列表格式选项
-m
:所有文件在同一行上,用逗号分隔。-x
:按列排序。-1
:单列显示。-C
:多列显示(默认)。-Q
,--quote-name
:将文件名放在双引号内。--hide=PATTERN
:隐藏匹配 PATTERN 的文件。-R
,--recursive
:递归显示子目录。
文件类型选项
-F
,--classify
:在条目后添加指示文件类型的字符(例如,/
表示目录)。-d
,--directory
:显示目录本身而非其内容。-p
,--indicator-style=slash
:在目录名称后添加斜杠。
其他选项
--help
:显示帮助信息并退出。--version
:显示版本信息并退出。
要查看完整选项列表,可以使用 man ls
命令查看 ls
的手册页,这将提供最准确和最全面的选项列表。
4.参考示例
4.1 -a, --all
4.2. -l
示例: ls -l
解析: 此命令以长格式显示当前目录下的文件和目录的详细信息,包括权限、所有者、大小和最后修改时间。
以下是 ls -l 输出的每部分内容的详细解释:
- 文件类型 (第1个字符)
- -: 普通文件
- d : 目录
- l : 符号链接,相当于windows中的快捷方式
- s : 套接字
- p : 管道
- b : 块设备
- c : 字符设备
- 用户的操作权限 (2 – 10个字符)
- 文件所有者对文件的操作权限 (2,3,4个字符)
- 文件所属组用户对文件的操作权限(5,6,7个字符)
- 其他人对文件的操作权限(8,9,10个字符)
- 硬链接计数:
- 对于目录来说, 链接计数等于该目录下所有的目录总数(含. 和 …), 但是不包含该目录的子目录下的目录文件数量, 执行ls -la命令可以进行查看.
- 对于文件来说, 指的是该文件所有的硬链接文件数量
- 文件所有者: xjc
- 文件所属组: xjc
- 文件大小: 396
- 如果是目录: 只表示目录大小, 不包含目录中的内容, 目录大小为4k
- 如果是文件:表示文件大小
- 文件的创建日期或最后修改时间:1月 11 06:06
- 文件名:output.txt
- 参数之间可以结合使用:
- ls -la : 列出当前目录下所有文件的相信信息, 包括隐藏文件
- ls -ltr: 列出当前目录下的文件, 按照时间逆向排序
- 文件所有者, 所属组, 其他人的概念
4.3. -h, --human-readable
示例: ls -lh
解析: 结合 -l
使用,此命令以易于阅读的格式(例如 KB、MB)显示文件大小。
4.4. -t
示例: ls -lt
解析: 按照最后修改时间排序文件和目录,最近修改的排在最前。
4.5. -S
示例: ls -lS
解析: 按文件大小排序,从大到小。
4.6. -n
示例: ls -n
解析: 打印文件的 UID 和 GID
4.7. -R, --recursive
示例: ls -R
解析: 递归地列出所有子目录的内容。
4.8. **-i, --**inode
示例: ls -i
解析: 显示每个文件的 inode 号。
4.9. -F, --classify
示例: ls -F
解析: 在每个条目后添加一个字符以指示该条目的类型(例如,/
表示目录)。