ls 是 list 的缩写,是 macOS 和其他类 Unix 系统(如 Linux)中最基本、最常用的命令之一,它的主要作用是列出目录中的内容。

基本用法
打开你的“终端”(Terminal)应用程序,然后就可以使用 ls 命令了。
列出当前目录的内容
直接输入 ls 并按回车,会列出当前工作目录下的所有文件和文件夹。
# 示例输出 Applications Documents Downloads Movies Library Pictures Desktop Public
列出指定目录的内容
你可以在 ls 后面加上一个路径,来列出该目录下的内容。
# 列出用户主目录下的 Documents 文件夹内容 ls ~/Documents # 列出根目录下的 Applications 文件夹内容 ls /Applications
常用选项(Flags)
ls 命令的真正威力在于它的各种选项,选项通常以一个短横线 开头。

-l:长格式列表
这是最常用的选项之一,它会以详细列表的形式显示信息,每一行代表一个文件或目录,包含以下信息:
- 文件类型和权限:
-rw-r--r--或drwxr-xr-x。 - 硬链接数:通常为1。
- 所有者:文件或目录的拥有者。
- 所属组:文件或目录所属的用户组。
- 大小:文件大小(以字节为单位)。
- 最后修改日期和时间。
- 名称:文件或目录的名称。
ls -l
示例输出解析:
drwxr-xr-x@ 5 myuser staff 160 Oct 26 10:30 Documents
-rw-r--r--@ 1 myuser staff 12345 Oct 25 15:22 report.txt
d:这是一个目录 (directory),如果是普通文件,则显示为 。rwxr-xr-x:分别是所有者、组、其他用户的权限。5:硬链接数。myuser:所有者。staff:所属组。160:大小(字节)。Oct 26 10:30:最后修改时间。Documents/report.txt:名称。
-a:显示所有文件
默认情况下,ls 会隐藏以 开头的文件(这些是隐藏文件或系统文件)。-a 选项会显示所有文件,包括这些隐藏文件。
ls -a
示例输出:

. .. .DS_Store Applications
Documents Library ...
- 代表当前目录。
- 代表上级目录。
.DS_Store、.gitignore等就是隐藏文件。
-h:人性化显示文件大小
当与 -l 一起使用时,-h 选项会将文件大小从字节转换为更易读的单位,如 K (KB), M (MB), G (GB)。
ls -lh
示例输出:
total 64
drwxr-xr-x@ 5 myuser staff 160B Oct 26 10:30 Documents
-rw-r--r--@ 1 myuser staff 12K Oct 25 15:22 report.txt
drwxr-xr-x@ 2 myuser staff 4.0K Oct 26 11:00 Pictures
160B,12K,0K比160,12288,4096更直观。
-t:按修改时间排序
默认情况下,文件是按字母顺序排序的。-t 选项会根据文件的最后修改时间进行排序,最新的文件会显示在最前面。
ls -t
-r:反向排序
这个选项会反转排序的顺序,与 -t 一起使用时,最旧的文件会显示在最前面。
ls -tr
-S:按文件大小排序
这个选项会根据文件大小进行排序,从大到小。
ls -lS
组合使用选项
你可以将多个选项组合在一起使用,这是 ls 命令最常见和最强大的用法。
列出所有文件的详细信息(包括隐藏文件)
这是最经典的组合,几乎在所有开发和管理工作中都会用到。
ls -la
或者
ls -al
(选项的顺序通常不重要)
按时间排序并人性化显示大小
ls -lhtr
l: 长格式h: 人性化大小t: 按时间排序(新到旧)r: 反向排序(最终效果为:旧到新)
在 macOS 上的特殊之处
默认使用 ls -G (彩色显示)
在 macOS 的默认 Shell (Zsh) 中,ls 命令默认就带上了 -G 选项,它会用不同的颜色来区分不同类型的文件,使其更易于阅读:
- 蓝色:目录
- 黑色/白色:普通文件
- 绿色:可执行文件
- 黄色:设备文件
- 青色:符号链接
如果你不想使用颜色,可以使用 -F 选项(在 macOS 上效果类似)或者 CLICOLOR 环境变量来禁用。
使用 GNU ls (通过 gnubin)
macOS 自带的 ls 是 BSD 版本的,功能与 Linux 上的 GNU 版本略有不同(GNU ls 默认不支持 --color=auto),很多习惯 Linux 的用户更喜欢 GNU 版本。
你可以通过 Homebrew 安装 coreutils 包来获得 GNU 版本的命令,安装后,GNU ls 会被命名为 gls。
# 安装 coreutils brew install coreutils # 使用 GNU ls gls --color=auto -la
安装后,你还可以将 gnubin 目录添加到你的 PATH 中,这样 ls 命令就会优先指向 GNU 版本。
实用技巧
使用管道 和 less 分页查看非常多时,屏幕会一闪而过,你可以使用管道 将 ls 的输出传递给 less 命令进行分页查看。
ls -la | less
在 less 界面中,你可以使用上下箭头、j、k 来滚动,按 q 退出。
使用通配符 进行模糊匹配
你可以使用 来匹配任意数量的字符。
# 列出所有以 .log 结尾的文件 ls *.log # 列出所有以 "Doc" 开头的文件或文件夹 ls Doc*
总结表格
| 选项 | 全称 | 功能 | 示例 |
|---|---|---|---|
-l |
--format=long |
以长格式(详细列表)显示 | ls -l |
-a |
--all |
显示所有文件,包括隐藏文件 | ls -a |
-h |
--human-readable |
人性化显示文件大小 (K, M, G) | ls -lh |
-t |
--sort=time |
按修改时间排序(新到旧) | ls -t |
-r |
--reverse |
反向排序结果 | ls -tr |
-S |
--sort=size |
按文件大小排序(大到小) | ls -lS |
-F |
--classify |
在文件名后添加类型标识( for dir, for exec) | ls -F |
-G |
(macOS only) | 彩色输出 | ls (默认开启) |
-d |
--directory |
只列出目录本身,不列出其内容 | ls -d */ |
掌握 ls 命令是使用 macOS 终端的第一步,也是最重要的一步,从简单的 ls 开始,逐步尝试组合不同的选项,你会发现它非常强大且高效。
