ls 是 Linux 中使用频率最高的命令之一,用于列出目录中的文件和子目录。它支持丰富的参数来展示文件的各种属性。
ls 命令读取目录中的条目,并按照字母顺序排列显示。默认情况下,它只显示当前目录下的文件名(不包含隐藏文件,即以 . 开头的文件)。
示例 1:基础列表
ls
Documents Downloads Music Pictures project todo.txt
示例 2:长格式列出,显示详细信息
ls -l
total 24
drwxr-xr-x 2 alice staff 4096 Aug 18 10:30 Documents
drwxr-xr-x 5 alice staff 4096 Aug 17 14:22 Downloads
-rw-r--r-- 1 alice staff 1523 Aug 18 09:15 todo.txt
示例 3:列出所有文件(含隐藏文件),并以人类可读的格式显示大小
ls -lah
total 32K
drwxr-xr-x 6 alice staff 4.0K Aug 18 10:30 .
drwxr-xr-x 12 alice staff 4.0K Aug 16 08:00 ..
-rw-r--r-- 1 alice staff 220 Aug 16 08:00 .bashrc
drwxr-xr-x 2 alice staff 4.0K Aug 18 10:30 Documents
-rw-r--r-- 1 alice staff 1.5K Aug 18 09:15 todo.txt
示例 4:按修改时间倒序排列
ls -lt
total 24
-rw-r--r-- 1 alice staff 1523 Aug 18 09:15 todo.txt
drwxr-xr-x 2 alice staff 4096 Aug 18 10:30 Documents
drwxr-xr-x 5 alice staff 4096 Aug 17 14:22 Downloads
示例 5:递归列出所有子目录
ls -R project
project:
src tests README.md Makefile
project/src:
main.c utils.c utils.h
project/tests:
test_main.c test_utils.c
| 参数 | 长参数 | 说明 |
|---|---|---|
-a |
--all |
列出所有文件,包括以 . 开头的隐藏文件 |
-A |
--almost-all |
列出所有文件,但不包括 . 和 .. |
-l |
使用长格式列出,显示权限、所有者、大小、修改时间等 | |
-h |
--human-readable |
与 -l 配合,以人类可读格式显示文件大小(如 1K、234M、2G) |
-t |
按修改时间排序,最新的在前 | |
-r |
--reverse |
反转排序顺序 |
-S |
按文件大小排序,最大的在前 | |
-R |
--recursive |
递归列出子目录的内容 |
-i |
--inode |
显示每个文件的 inode 号 |
-d |
--directory |
只列出目录本身,而不列出目录中的内容 |
-1 |
每行只显示一个文件(单列输出) | |
-F |
--classify |
在文件名后追加指示符:/ 表示目录,* 表示可执行文件,@ 表示符号链接 |
-s |
--size |
显示每个文件分配的块大小(以块为单位) |
-n |
--numeric-uid-gid |
显示数字形式的 UID 和 GID,而非用户名和组名 |