【ls】Centos/Linux ls命令详细介绍

简介

系统版本:Centos7.6

软件版本:ls 8.22

ls命令是Linux系统中常用的一个命令,用于显示指定目录下的文件和目录。在未指定路径的默认情况下会列出当前目录下的文件(开头为"."的不显示),在必选的选项中,"-"开头的短选项和"--"开头的长选项的要求是一致的。

基本语法

bash 复制代码
> ls [option] [file]

选项介绍

选项 选项说明
-a, --all 不要忽略以点号(".")起始的条目,即显示目录下的所有文件,包括隐藏文件
-A, --almost-all 不要列出隐含的"."和".."
--author 与 -l 同时使用时,列出每个文件的作者
-b, --escape 将无法显示的字符显示为 C 风格的转义形式
--block-size=SIZE 与 -l 同时使用时,打印文件大小前将其除以指定的块大小;例如:"--block-size=M"会以 1,048,576 字节为单位打印尺寸,假设原始的尺寸是 5,242,880 字节,使用 '--block-size=M' 进行转换和打印后,显示的数值就会是 5 (因为 5,242,880 ÷ 1,048,576 ≈ 5 )
-B, --ignore-backups 不要列出以 ~ 结尾的隐藏项目
-c -lt 一起使用时:按照 ctime 排序,并显示 ctime(文件状态信息最后变更的时间);与 -l 一起使用时:显示 ctime 并按照名称排序,否则按照 ctime 排序,最新的最前
-C 逐列列出项目
--color[=WHEN] 指定何时使用彩色输出,WHEN可以是 never、auto、always(默认)
-d, --directory 列出目录本身,而不是目录的内容
-D, --dired 产生适合 Emacs 的 dired 模式使用的输出
-f 按照目录顺序列出各项目,启用 -aU 选项,禁用 -ls --color 选项
-F, --classify 指定何时在项目后追加指示符号(*/=>@| 中的一个)
--file-type 类似 -F, --classify,但不追加 "*" 字符
--format=WORD across 同 -x 、commas 同 -m 、horizontal 同 -x 、long 同 -l 、single-column 同 -1 、verbose 同 -l 、vertical 同 -C
--full-time 等于 -l --time-style =full-iso
-g 类似 -l,但不列出所有者
--group-directories-first 将目录排在文件前面;此选项可与 --sort 一起使用,但是一旦使用 --sort =none (-U) 则禁用此选项
-G, --no-group 使用长列表格式时,不输出组名
-h, --human-readable 同时使用 -l-s 时,将大小表示为可读的形式(如:1K、234M、2G 等)
--si 类似 -h, --human-readable,但是使用1000的乘方,而不使用1024
-H, --dereference-command-line 跟随命令行中列出的符号链接
--dereference-command-line-symlink-to-dir 跟随命令行中列出的、指向目录的符号链接
--hide=PATTERN 隐藏符合指定 shell 模式(PATTERN)的项目(-a-A 使此选项失效)
--indicator-style=WORD 指定在项目名称后追加的指示符号的风格:none(默认)、slash(同 -p )、file-type(同 --file-type )、classify(同 -F
-i, --inode 显示每个文件的索引编号(inode 号)
-I, --ignore=PATTERN 隐藏符合给定 shell 模式(PATTERN)字符串的项目
-k, --kibibytes 显示文件系统使用量时,默认使用 1024 字节的块大小
-l 使用长列表格式
-L, --dereference 显示符号链接的文件信息时,显示符号链接指向的文件的信息,而非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-n 类似 -l,但会以数字的形式列出用户和组的 ID 号
-N 输出不加引号的项目名称
-o 类似 -l,但不列出有关组的信息
-p, --indicator-style=slash 对目录追加 "/" 作为指示符号
-q, --hide-control-chars 以 "?" 字符代替不可打印的字符
--show-control-chars 原样显示无法打印的字符(这是默认行为,除非被调用时的程序名是"ls"且在终端中进行输出)
-Q, --quote-name 在项目名称两侧加上双引号
--quoting-style=WORD 使用指定的加引号方式显示项目名称:literal、locale、shell、shell-always、c、escape(该选项优先于 QUOTING_STYLE 环境变量)
-r, --reverse 排序时逆序排列
-R, --recursive 递归列出子目录内容
-s, --size 以块为单位显示每个文件分配的大小
-S 根据文件大小排序,最大的最前
--sort=WORD 按照关键字而非名称进行排序:none(同 -U)、size(同 -S)、time(同 -t)、version(同 -v)、extension(同 -X)
--time=WORD 改变使用的时间类型,默认为修改时间;访问时间(同 -u ):atime、access、use;变更时间(同 -c):ctime、status;和 --sort=time 同时使用时,按照关键字进行排序(最新的最前)
--time-style=STYLE 使用 -l 时显示的时间/日期格式;样式 STYLE 有:full-isolong-isoisolocale 或者 +FORMATFORMAT 的解释类似于在 date 命令中的解释;如果 FORMATFORMAT1<换行>FORMAT2,那么 FORMAT1 适用于旧文件,FORMAT2 适用于新文件;如果 STYLEposix- 为前缀,那么 STYLE 仅在非 POSIX 区域设置中生效
-t 按时间排序,最新的最前
-T, --tabsize=COLS 指定制表符(Tab)宽度为给定列数,而非默认的 8
-u -lt 同时使用时:显示访问时间且按访问时间排序;与 -l 同时使用时:显示访问时间但按名称排序;其他情况:按访问时间排序,最新的最前
-U 不进行排序;按照目录顺序列出项目
-v 对文本中的数字(或版本号)进行自然排序
-w, --width=COLS 设置输出宽度为指定列数。0 表示无限制
-x 逐行列出项目而不是逐列列出
-X 按照扩展名的字母顺序排序
-1 每行只列出一个文件
--lcontext 输出安全上下文信息,没有自动适应屏幕宽度,对于大多数屏幕来说都会超出
-Z, --context 输出每个文件的所有安全上下文信息,有自动适应屏幕宽度,只显示模式、用户、组、安全上下文信息和文件名
--scontext 只输出安全上下文信息和文件名
--help 显示此帮助信息
--version 显示版本信息

退出状态

选项 选项说明
0 表示正常
1 表示小问题(如:无法访问子目录)
2 表示严重问题(如:无法使用命令行参数)

基本用法

1、显示当前目录下的文件和子目录

bash 复制代码
> ls

2、显示指定目录下的文件和子目录

bash 复制代码
> ls directory

3、显示指定文件的信息

bash 复制代码
> ls file

4、以长格式显示当前目录下的文件和子目录的详细信息

bash 复制代码
> ls -l

5、显示当前目录下的所有文件和子目录,包括隐藏文件

bash 复制代码
> ls -a

6、以易读的方式显示文件大小

bash 复制代码
> ls -lh

7、按修改时间对当前目录下的文件和子目录进行排序

bash 复制代码
> ls -t

注意事项

1、SIZE:是一个整数以及可选的单位(例如:10M 表示 10 * 1024 * 1024)。单位有 K、M、G、T、P、E、Z、Y(1024 的幂)或者 KB、MB 等(1000 的幂)。

2、默认情况下,使用 --color=never,来禁用颜色来区分文件类型的功能。使用 --color=auto 时,只有标准输出连接到终端时,ls 才会生成颜色代码。可以通过环境变量LS_COLORS 来更改颜色设置,也可以使用 dircolors 命令来设置。

相关推荐
幺零九零零43 分钟前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
云飞云共享云桌面2 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq2 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮3 小时前
Linux 使用中的问题
linux·运维
dsywws4 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零5 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge5 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱5 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
free6 小时前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程6 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法