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 | -c | inode 元数据修改时间(权限、所有者等) |
# 修改文件内容 → 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 .[!.]* # 只列出隐藏文件(排除 . 和 ..)