news 2026/7/17 6:35:54

linux的ls命令详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux的ls命令详解

Linux ls 命令超详细详解

ls=List Directory Contents,是 Linux 系统中使用频率最高、最基础的命令,没有之一。它用于列出目录中的文件和子目录,查看文件的权限、大小、修改时间等元数据,是日常操作和系统管理的必备工具。

一、基础语法与默认行为

基础语法

bash

运行

ls [选项] [目录/文件路径]
  • 选项:控制输出格式和内容的参数
  • 目录 / 文件路径:要列出的目录或文件,默认为当前目录(.

默认行为

  • 只显示非隐藏文件(文件名不以.开头)
  • 文件名升序排列
  • 多列显示(列数根据终端宽度自动调整)
  • 不显示文件的详细信息(只显示文件名)

二、核心必记参数(按功能分类)

1. 基础显示控制

表格

参数含义最常用场景
-a/--all显示所有文件,包括隐藏文件(以.开头)和特殊目录.(当前目录)、..(上级目录)查看隐藏配置文件
-A/--almost-all显示所有隐藏文件,但不显示...-a更干净的隐藏文件查看
-l长格式显示文件的详细信息(权限、所有者、大小、时间等)90% 以上的使用场景
-h/--human-readable人类可读的格式显示文件大小(KB、MB、GB)配合-l使用,替代默认的字节数
-1(数字 1)每行只显示一个文件管道处理时使用
-C强制多列显示(默认行为)终端较宽时使用
-m逗号分隔的格式显示文件名生成文件列表时使用

2. 文件详细信息

表格

参数含义最常用场景
-i/--inode显示文件的inode 号查找硬链接、排查文件系统问题
-s/--size显示文件占用的磁盘块数(默认 1KB / 块)查看实际磁盘占用
-n/--numeric-uid-gid显示UID 和 GID 数字,而不是用户名和组名排查权限问题
-g长格式显示,但不显示所有者精简输出
-o长格式显示,但不显示所属组精简输出
-Z/--context显示文件的SELinux 安全上下文CentOS/RHEL 系统排查权限问题

3. 排序控制

表格

参数含义最常用场景
-t修改时间降序排列(最新的在前)查找最近修改的文件
-S文件大小降序排列(最大的在前)查找大文件
-r/--reverse反转排序顺序(升序变降序,降序变升序)配合-t/-S使用
-v版本号自然排序排序带版本号的文件(如file1.10排在file1.2之后)
-X文件扩展名排序按类型整理文件
-U不排序,按目录存储顺序显示速度最快

4. 时间相关

表格

参数含义最常用场景
-c显示状态改变时间(ctime),并按其排序查看文件权限 / 属性修改时间
-u显示访问时间(atime),并按其排序查看文件最后被读取的时间
--time-style=FORMAT指定时间显示格式统一时间格式
--full-time显示完整的时间戳(精确到纳秒)精确时间对比

5. 目录与文件类型

表格

参数含义最常用场景
-d/--directory只显示目录本身,不显示目录内容查看目录的权限和属性
-R/--recursive递归列出所有子目录的内容查看整个目录树
-F/--classify在文件名后添加类型标识符号快速区分文件类型
--color=auto启用彩色输出(默认已开启)通过颜色区分文件类型

三、长格式输出详解(最重要)

ls -l是最常用的命令组合,其输出每一列的含义如下:

plaintext

-rwxr-xr-x 1 root root 4096 Jun 6 10:00 script.sh │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └── 文件名 │ │ │ │ │ │ │ └── 最后修改时间 │ │ │ │ │ │ └── 文件大小(字节,加-h后为人类可读格式) │ │ │ │ │ └── 所属组 │ │ │ │ └── 所有者 │ │ │ └── 硬链接数 │ └── 其他用户权限 │ └── 组用户权限 └── 所有者权限 └── 文件类型

1. 文件类型标识(第一列第一个字符)

表格

字符含义
-普通文件
d目录
l软链接(符号链接)
b块设备文件(硬盘、U 盘)
c字符设备文件(终端、串口)
s套接字文件
p管道文件

2. 权限位详解(第一列第 2-10 个字符)

每 3 个字符为一组,分别对应所有者、组用户、其他用户的权限:

  • r:读权限(4)
  • w:写权限(2)
  • x:执行权限(1)
  • -:无对应权限

特殊权限位

  • s(所有者位):SUID 权限,执行文件时以文件所有者身份运行
  • s(组用户位):SGID 权限,执行文件时以文件所属组身份运行;目录中创建的文件继承目录所属组
  • t(其他用户位):粘滞位,目录中只有文件所有者才能删除自己的文件(如/tmp目录)

示例:

  • drwxr-xr-x:目录,所有者读写执行,组和其他读执行
  • -rwsr-xr-x:可执行文件,设置了 SUID 权限
  • drwxrwxrwt:目录,设置了粘滞位

四、文件类型标识与颜色

1.-F参数的类型符号

表格

符号含义
/目录
*可执行文件
@软链接
=套接字文件
``管道文件
>门文件(Solaris)

2. 主流 Linux 发行版默认颜色编码

表格

颜色对应文件类型
白色普通文件
蓝色目录
绿色可执行文件
红色压缩文件 / 归档文件
洋红色图片 / 视频文件
青色软链接
黄色设备文件
红色背景损坏的软链接
青色背景粘滞位目录
黄色背景SGID 目录
红色背景SUID 文件

五、高频实战示例(最常用组合)

1. 最常用的终极组合

bash

运行

# 显示所有文件(包括隐藏)的详细信息,人类可读大小 ls -lha

2. 按时间排序(最新修改在前)

bash

运行

# 最新修改的文件排在最前面 ls -lt # 最旧修改的文件排在最前面 ls -ltr

3. 按大小排序(最大文件在前)

bash

运行

# 最大的文件排在最前面 ls -lhS # 最小的文件排在最前面 ls -lhSr

4. 只显示目录本身

bash

运行

# 查看/var目录的权限和属性(不显示其内容) ls -ld /var # 只显示当前目录下的所有子目录 ls -d */

5. 查看文件的 inode 号

bash

运行

# 查看文件的inode号,用于查找硬链接 ls -i test.txt

6. 递归列出所有文件

bash

运行

# 递归列出当前目录及其所有子目录的内容 ls -R # 递归显示所有文件的详细信息 ls -lR

7. 显示完整时间戳

bash

运行

# 显示精确到纳秒的完整时间戳 ls -l --full-time

8. 按版本号排序

bash

运行

# 正确排序带版本号的文件(file1.2, file1.10, file2.1) ls -lv

9. 只显示特定类型的文件

bash

运行

# 只显示.txt文件 ls *.txt # 只显示以test开头的文件 ls test* # 只显示单个字符开头的.sh文件 ls ?.sh

六、高级用法与技巧

1. 常用别名设置(永久生效)

大多数 Linux 系统已经预定义了以下别名,你也可以添加到~/.bashrc中:

bash

运行

# 编辑配置文件 nano ~/.bashrc # 添加以下内容 alias ll='ls -l' alias la='ls -la' alias lh='ls -lh' alias lt='ls -lht' alias lS='ls -lhS' # 生效配置 source ~/.bashrc

设置后,直接输入ll就相当于输入ls -l,大幅提高效率。

2. 结合管道使用

bash

运行

# 查找包含"test"的文件 ls | grep test # 显示当前目录下最大的10个文件 ls -lhS | head -10 # 显示当前目录下最新修改的10个文件 ls -lht | head -10 # 统计当前目录下的文件数量 ls -1 | wc -l

3. 显示 SELinux 上下文(CentOS/RHEL 专用)

bash

运行

# 查看文件的SELinux安全上下文 ls -Z /etc/passwd

4. 自定义时间格式

bash

运行

# 使用ISO 8601格式显示时间 ls -l --time-style=long-iso # 使用YYYY-MM-DD HH:MM格式显示时间 ls -l --time-style="+%Y-%m-%d %H:%M"

七、避坑重点与最佳实践

避坑重点

  1. 默认不显示隐藏文件文件名以.开头的文件默认不显示,必须加-a-A参数。

  2. -d参数的用法很多人想查看目录本身的权限却用ls -l /dir,结果显示的是目录内容。必须加-d参数:ls -ld /dir

  3. 通配符解析通配符(*?[])是由shell解析的,不是由 ls 命令解析的。例如ls *.txt实际上是 shell 先把*.txt展开成所有匹配的文件名,再传给 ls。

  4. ls 不能搜索文件内容ls 只能查看文件名和元数据,不能搜索文件内容。搜索文件内容需要用grep命令。

  5. 颜色输出问题如果输出没有颜色,可以添加--color=auto参数,或者在别名中设置:alias ls='ls --color=auto'

最佳实践

  1. 优先使用别名:养成使用llla等别名的习惯,提高效率。
  2. 查看详细信息必加-h:人类可读的大小比字节数更直观。
  3. 查找最新文件用ls -lht:这是排查日志和临时文件最常用的命令。
  4. 查找大文件用ls -lhS:快速定位占用磁盘空间的文件。
  5. 只看目录用ls -d */:比grep过滤更高效。

八、常用组合速查表

表格

命令组合含义
ls列出当前目录非隐藏文件
ls -a列出所有文件(包括隐藏)
ll长格式显示非隐藏文件
ll -a长格式显示所有文件
ll -h长格式显示,人类可读大小
ll -t按修改时间降序排列
ll -S按文件大小降序排列
ll -r反转排序顺序
ll -d /dir查看目录本身的详细信息
ls -i显示文件 inode 号
ls -R递归列出所有文件
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 6:35:50

高效办公靠 AI 导出鸭:怎么用腾讯元宝做 excel 表格

引言 当下职场人群每日需借助AI工具批量生成数据表格,腾讯元宝生成的结构化文本常存在格式错乱、无法直接导入Excel的难题,手动整理耗时耗力,AI导出鸭作为轻量化导出工具,可打通AI文本与表格文件的转换壁垒,搭配腾讯元…

作者头像 李华
网站建设 2026/7/17 6:34:16

C++与TensorRT:深度学习模型高性能部署的核心技术解析

1. 项目概述:从实验室到产线的鸿沟如果你是从Python的Jupyter Notebook或者PyTorch/TensorFlow的脚本世界走过来的开发者,第一次接触实际的生产环境部署,可能会被一个现象冲击到:实验室里热火朝天的Python,到了实际工程…

作者头像 李华
网站建设 2026/7/17 6:33:20

AI推理与量子计算:C++与Rust的性能、安全与生态深度对比

1. 项目概述:当AI与量子计算遇上语言之争最近和几个做高性能计算和系统架构的朋友聊天,话题总绕不开一个老生常谈但又常谈常新的问题:在新兴的AI推理和量子计算模拟领域,到底该押宝C还是拥抱Rust?这听起来像是一场纯粹…

作者头像 李华
网站建设 2026/7/17 6:32:44

C++递归删除目录:从原理到跨平台实现与工程实践

1. 项目概述:为什么需要自己动手写删除目录的代码?在C开发中,处理文件和目录是绕不开的基础操作。你可能遇到过这样的场景:程序运行过程中产生了大量临时文件,需要在退出时清理;或者是一个安装程序&#xf…

作者头像 李华
网站建设 2026/7/17 6:27:46

GLM Coding Plan抢购现象解析与AI编程助手应用指南

上周三晚上 8 点,我准时打开电脑,刷新页面,准备抢购 GLM Coding Plan。页面加载转圈的那几秒钟,脑子里已经盘算好了拿到额度后要测试的几个项目。然而,转圈结束,映入眼帘的依然是那个熟悉的提示——“额度已…

作者头像 李华