导航菜单

Linux命令大全-ls命令

陆兴东 2026-04-07 21 浏览 Linux命令

一、简介

ls(英文全拼:list directory contents) 命令用于显示指定工作目录下或文件的属性信息(列出目前工作目录所含的文件及子目录)。

ls命令是Linux下最常用的命令之一。

ls命令默认不加任何参数的情况下,它会列出当前工作目录下的文件信息,常和cd或pwd命令搭配使用,非常方便。带上参数后,还可以做更多的认息查看。

二、语法

用法:ls [选项]... [文件]...

常用参数说明:

参数

参数说明

-a 或 --all

显示所有文件(包括以 . 开头的隐藏文件)

-A 或 --almost-all

显示除 . 和 .. 外的所有文件(包括隐藏文件)

-l

以长格式(详细信息)列出文件(权限、所有者、大小、修改时间等)

-h 或 --human-readable

与 -l 一起使用时,以人类可读的格式显示文件大小(如 KB、MB)

-t

按修改时间排序(最新优先

-r 或 --reverse

反向排序(配合 -t、-S 等使用)

-S

按文件大小排序(大文件优先)

-R 或 --recursive

递归列出子目录内容

-F 或 --classify

在文件名后附加标识符(如 / 表示目录,* 表示可执行文件)

--color

彩色输出(通常默认启用,--color=auto)

-i 或 --inode

显示文件的 inode 编号

-n 或 --numeric-uid-gid

以数字形式显示 UID 和 GID(替代用户名和组名)

-d 或 --directory

仅显示目录本身,而非其内容(常用于配合 -l)

-1

每行只显示一个文件(默认在终端宽度不足时自动启用)

-m

以逗号分隔的列表形式显示文件

-Q 或 --quote-name

用引号括住文件名(适用于含空格的文件名)

--group-directories-first

先显示目录,后显示文件

--time-style=<格式>

自定义时间显示格式(如 +%Y-%m-%d)

三、实战

1、详细列出当前目录所有文件(含隐藏文件)

[root@app01 ~]# ls -la
总用量 48
dr-xr-x---.  5 root root  262 7月  19 17:23 .
dr-xr-xr-x. 18 root root  255 7月   5 10:38 ..
-rw-------.  1 root root 2076 7月   2 16:03 anaconda-ks.cfg
-rw-------.  1 root root 3549 7月  19 12:37 .bash_history
-rw-r--r--.  1 root root   18 12月 29 2013 .bash_logout
-rw-r--r--   1 root root  177 7月   5 11:09 .bash_profile
-rw-r--r--.  1 root root  176 12月 29 2013 .bashrc
drwx------.  4 root root   31 7月   2 16:07 .cache
………………省略部分输出信息………………

2、按文件大小反向排序

[root@app01 soft]# ls -lShr总用量 1.8G-rw-r--r-- 1 app  app  175M 7月   5 11:06 jdk-17.0.15_linux-x64_bin.tar.gz-rw-r--r-- 1 app  app  185M 7月   5 11:06 nacos-server-3.0.2.zip-rw-r--r-- 1 root root 583M 7月   5 16:45 mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz-rw-r--r-- 1 app  app  848M 7月   5 11:06 mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz

3、按文件大小排序(大文件优先)

[root@app01 soft]# ls -lSh
总用量 1.8G
-rw-r--r-- 1 app app 848M 7月   5 11:06 mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz
-rw-r--r-- 1 app app 583M 7月   5 16:45 mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
-rw-r--r-- 1 app app 185M 7月   5 11:06 nacos-server-3.0.2.zip
-rw-r--r-- 1 app app 175M 7月   5 11:06 jdk-17.0.15_linux-x64_bin.tar.gz

4、递归列出/app目录内容

[root@app01 jdk]# ls -lhR /app
/app:
总用量 0
drwxr-xr-x  9 app   app   136 7月   5 11:07 jdk
drwxr-xr-x 12 mysql mysql 163 7月   6 17:49 mysql-8.0.32
drwxr-xr-x  7 app   app    96 7月   6 16:57 nacos
drwxr-xr-x  2 app   app   176 7月   5 16:45 soft
/app/jdk:总用量 24Kdrwxr-xr-x  2 app app 4.0K 7月   5 11:07 bin
drwxr-xr-x  5 app app  123 7月   5 11:07 conf
drwxr-xr-x  3 app app  132 7月   5 11:07 include
drwxr-xr-x  2 app app 4.0K 7月   5 11:07 jmods
drwxr-xr-x 72 app app 4.0K 7月   5 11:07 legal
drwxr-xr-x  5 app app 4.0K 7月   5 11:07 lib
/app/jdk/bin:总用量 448K-rwxr-xr-x 1 app app 13K 2月  20 18:49 jar
-rwxr-xr-x 1 app app 13K 2月  20 18:49 jarsigner
-rwxr-xr-x 1 app app 13K 2月  20 18:49 java
………………省略部分输出信息………………

-h参数,以可读的格式显示文件大小(如 KB、MB)。

5、仅显示目录的详细信息(不递归)

[root@app01 jdk]# ls -ld /app
drwxr-xr-x. 6 app app 62 7月   5 16:46 /app

6、按修改时间排序(最新文件最后显示)

[root@app01 soft]# ls -ltr
总用量 1832048
-rw-r--r-- 1 app app 183197735 7月   5 11:06 jdk-17.0.15_linux-x64_bin.tar.gz
-rw-r--r-- 1 app app 193786188 7月   5 11:06 nacos-server-3.0.2.zip
-rw-r--r-- 1 app app 888706200 7月   5 11:06 mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz
-rw-r--r-- 1 app app 610315332 7月   5 16:45 mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

7、列出“/app”目录下的所有目录

[root@app01 soft]# ls 
/app
jdk  mysql-8.0.32  nacos  soft

四、知识扩充

当文件名包含空格、特殊字符或者开始字符为破折号时,可以使用反斜杠(\)进行转义,或者使用引号将文件名括起来。如下所示:

[root@app01 soft]# ls "my filename.txt"    //列出文件名为"my filename.txt"的文件
[root@app01 soft]# ls my\ filename.txt     //列出文件名为"my filename.txt"的文件

ls 命令还可以使用通配符进行模式匹配,例如 * 表示匹配任意字符,? 表示匹配一个字符,[...] 表示匹配指定范围内的字符。如下所示:

[root@app01 soft]# ls *.txt         # 列出所有扩展名为.txt的文件
[root@app01 soft]# ls file?.txt     # 列出文件名为file?.txt的文件,其中?表示任意一个字符
[root@app01 soft]# ls [abc]*.txt    # 列出以a、b或c开头、扩展名为.txt的文件

列出目前工作目录下所有名称是my开头的文件,越新的排越后面排。

[root@app01 soft]# ls -ltr my*
-rw-r--r-- 1 app app 888706200 7月   5 11:06 mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz-
rw-r--r-- 1 app app 610315332 7月   5 16:45 mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

在使用 ls -l 命令时,第一列的字符表示文件或目录的类型和权限。

drwxr-xr-x  2 app   app   176 7月   5 16:45 soft

其中第一个字符表示文件类型,其属性说明如下:

-:表示普通文件

d:表示目录

l:表示符号链接

c:表示字符设备文件

b:表示块设备文件

s:表示套接字文件

p:表示管道文件

第一列的其余 9 个字符表示文件或目录的访问权限,分别对应三个字符一组的 rwx 权限,其属性说明如下:

r:表示读取权限

w:表示写入权限

x:表示执行权限

-:表示没有对应权限

其第一列中前三个字符表示所有者的权限,中间三个字符表示所属组的权限,后三个字符表示其他用户的权限。例如:

drwxr-xr-x  2 app   app   176 7月   5 16:45 soft

soft目录,所有者具有读写执行权限,所属组和其他用户只有读执行权限。

查找最近修改的文件(显示最近修改的 5 个文件)

[root@app01 log]# ls -lt | head -5

统计文件数量

[root@app01 app]# ls |wc -l

注:统计当前目录下的文件数量(不包括隐藏文件)。

ls 命令的输出颜色可以通过 --color 选项控制,颜色说明如下:

蓝色:目录

绿色:可执行文件

红色:压缩文件

青色:链接文件

黄色:设备文件

如果在使用ls命令时,没有输出颜色,可参照“vi编辑器没有彩色显示解决方案”。

注:不同 Linux 发行版的 ls 命令可能有细微差别,可以通过 man ls 查看具体帮助文档。