ls 命令详解

ls 是 Linux 中最常用的文件列表命令,支持多种排序方式和显示选项。

1. 基础用法

ls              # 列出当前目录文件
ls -a           # 显示所有文件(包括隐藏文件 . 开头的)
ls -l           # 详细列表格式
ls -lh          # 人类可读的大小格式(K、M、G)
ls -la          # 详细列表 + 隐藏文件
ls -lS          # 按文件大小降序排列
ls -lt          # 按修改时间降序排列(最新在前)
ls -ltr         # 按修改时间升序排列(最旧在前,最新在最后)

2. 排序选项详解

选项说明典型场景
-S按文件大小排序(大文件在前)找大文件、清理磁盘
-t按修改时间排序(最新在前)查看最近修改的文件
-u按访问时间排序(最新在前)查看最近访问的文件
-c按状态改变时间排序(最新在前)查看元数据变化
-X按扩展名排序(字母顺序)按类型分组查看
-v按版本号排序(数字部分自然排序)处理 file1.txt, file2.txt, file10.txt
-r反向排序(与上述选项组合使用)ls -ltr 最旧文件在前

按大小排序

ls -lS              # 按大小降序(大文件在前)
ls -lSr             # 按大小升序(小文件在前)
 
# 找当前目录最大的 5 个文件
ls -lS | head -n 6  # 跳过第一行(total),取 5 个
 
# 按大小排序显示
du -sh * | sort -hr  # 目录大小排序

按时间排序

ls -lt              # 按修改时间降序(最新在前)
ls -ltr             # 按修改时间升序(最旧在前,最新在最后)
 
# 按访问时间排序
ls -ltu             # 最近访问的在前
ls -ltru            # 最近访问的在前,升序
 
# 按元数据修改时间排序
ls -ltc             # inode 状态变更时间

按其他方式排序

ls -lX              # 按扩展名排序(.txt, .log, .conf)
ls -lv              # 版本号自然排序(1, 2, 10 而不是 1, 10, 2)
 
# 按 inode 编号排序
ls -li

3. 常用组合

命令用途
ls -la查看所有文件(含隐藏)的详细信息
ls -lt按修改时间查看,最新修改的在前
ls -ltr按修改时间升序,常用于查看日志(最新的在最后)
ls -lS按文件大小降序,找大文件
ls -lSh按文件大小降序,人类可读格式
ls -lA列出除 ... 外的所有隐藏文件
ls -R递归列出所有子目录

4. 时间类型对比

时间类型选项说明
mtime-t文件内容修改时间(默认)
atime-u文件访问时间
ctime-cinode 元数据修改时间(权限、所有者等)
# 修改文件内容 → mtime 改变
# 修改文件权限 → ctime 改变
# 读取文件内容 → atime 改变
 
# 查看具体时间
ls -l --time=atime file.txt    # 访问时间
ls -l --time=ctime file.txt    # 状态改变时间
ls -l --time=modify file.txt   # 修改时间(默认)

5. 彩色输出

ls --color=auto    # 自动彩色输出(默认)
ls --color=none    # 无彩色
ls --color=always  # 始终彩色
 
# 常见颜色含义
# 蓝色:目录
# 绿色:可执行文件
# 白色:普通文件
# 黄色:设备文件
# 红色:压缩文件
# 青色:链接文件

6. 隐藏目录技巧

ls -d .*           # 只列出隐藏文件和目录(不进入子目录)
ls -d .[!.]*      # 只列出隐藏文件(排除 . 和 ..)