ls 查看文件和目录列表
============
本小节介绍如何使用命令列出当前所在目录中所有文件和目录的列表,另外还介绍使用不同的命令参数筛选和限制展示出来的列表。
1\. 列出目录列表
----------
显示当前目录下的文件目录列表命令:
ls
执行结果如下:
![](https://img.kancloud.cn/c1/b9/c1b94ffef729f34a3a6c6187384d20a3_1800x1032.png)
> **Tips**:`ls` 命令列出来的目录排序默认是按字母的列排序。
2\. 列出有标记的目录列表
--------------
使用 `ls -F` 命令可以在列表出来的文件后面加上一个标识,这样再使用 ls 命令列出文件列表时,能快速知道列出的文件类型和作用:
ls -F
如下图所示:
![](https://img.kancloud.cn/cd/77/cd771baf3ef537c37bd5da53bebea667_1592x970.png)
> **Tips**: `ls -F` 命令列出的文件名称后面会加一个标识,其中 `*` 表示可执行文件,`/` 表示目录,`=` 表示 socket 文件,`@` 表示 软链接,`|` 表示 FIFOs 文件。
3\. 列出包含隐藏文件的列表
---------------
可以使用 `ls -a` 命令列出当前目录包含隐藏文件的所有文件列表:
ls -a
执行结果如下:
![](https://img.kancloud.cn/58/fe/58fe06acf39a72b937cc08202a86763d_1500x960.png)
4\. 使用多个参数列出文件列表
----------------
可以在 ls 命令后面跟上多个参数列出的文件列表筛选:
ls -F -R -a
或
ls -FRa
执行结果如下:
![](https://img.kancloud.cn/2b/e8/2be81d6823ec8a925763061f8119d31f_1886x1086.png)
5\. 使用 ll 命令显示文件列表详细信息
----------------------
`ll` 命令是 `ls -l` 的简写,它可以显示出文件的权限、属主、大小、最后修改时间等等信息:
ll
或
ls -l
### 5.1 文件类型
![](https://img.kancloud.cn/de/fb/defb16d071c5e7eb2a1cd162f7e9f04f_1306x768.png)
最左侧一列表示该文件的类型:
* **“-”** 表示普通文件;
* **“d”** 表示目录;
* **“l”** 表示链接文件;
* **“p”** 表示管理文件;
* **“b”** 表示块设备文件。
### 5.2 文件属性
![](https://img.kancloud.cn/19/41/19414486c03c7e9be88052a2669ace3a_1388x754.png)
这里以 `boot` 目录为例,`r-xr-xr-x` 可以分为三部分 `[r-x][r-x][r-x]`,其中的第一部分表示文件创建者/所有者对该文件所具有的的权限,第二部分表示创建者/所有者所在的组其他用户的权限,第三部分表示其他组的用户的权限。
* **r(Read,读取权限)**:若是文件,则表示可以读取文件内容,若是目录,则表示可以浏览目录;
* **w(Write,写入权限)**:若是文件,则表示可以新增、修改内容,若是目录,则表示可以删除、移动目录列表的权限;
* **x(Execute,执行权限)**:若是文件,则表示具有执行文件的权限,若是目录,则表示该用户拥有进入目录的权限。
> **Tips**:关于权限相关的知识这里只是了解一下,后面小节或介绍权限相关的内容。
### 5.3 目录/链接个数
![](https://img.kancloud.cn/1a/54/1a54f9ae398d985b796623fe42dcabc8_1360x742.png)
* 如果是目录那么这里的数量减 2 表示它下级目录或者文件的个数。
* 如果是文件则表示指向它的链接文件的数量。
> **Tips**:每个目录下面都包含有 `.` 和 `..` 目录,其中 `.` 表示当前目录,`..` 表示上级目录。文件链接相当于 `windows` 里面的快捷方式。
### 5.4 文件所有者
![](https://img.kancloud.cn/81/54/8154065500dd41071696aefb2736bf28_1384x746.png)
其中 `root root` 可以分为两部分,`[root] [root]`,前面的 `root` 表示该文件或目录的所有者/创建者是 `root` 用户,后面的 `root` 表示该文件或目录所在的组是 `root`。
> **Tips**:关于用户权限和用户组的知识,后面小节会详细介绍。
### 5.5 文件的大小
![](https://img.kancloud.cn/34/01/3401984e686d1230d8813f86fbbd7b60_1342x742.png)
* 如果是则表示该文件的大小,单位是字节(byte)。
* 如果是目录则表示该目录所占的空间大小,并不是指该目录下所有文件的大小。
> **Tips**:1 字节(byte) = 8 比特(bit), 1 kb = 1024 bit。
### 5.6 修改日期
![](https://img.kancloud.cn/44/8c/448cd8a0fa63712953b2b8f571a2645d_1270x758.png)
表示最后修改的时间,以 `boot` 目录为例,表示最后修改或者创建时间是 `4 月 19 日 12:27`。
### 5.7 文件名称
![](https://img.kancloud.cn/1c/3d/1c3d8ec4659ba6c42c29748c4af67807_1300x764.png)
表示文件名,其中 `bin->usr/bin` 表示软链接。
### 5.8 字体颜色
![](https://img.kancloud.cn/c3/64/c364681a83ff8325108bb7dada857e9a_1364x750.png)
* 亮黄色表示设备文件;
* 亮蓝色表示链接文件;
* 灰蓝色表示目录;
* 亮红色表示压缩文件;
* 亮绿色表示可执行文件;
* 灰白色表示普通文件。
6\. ls 命令参数介绍
-------------
下面列出比较常见的 ls 相关的参数仅供参考:
| ls 命令参数名称 | 功能与作用描述 |
| :-- | :-- |
| \-a | 表示 `–all`, 列出目录下的所有文件,包括以 `.` 开头的隐藏文件。 |
| \-A | 表示 `-a`,但不列出 `.`(表示当前目录) 和 `..` (表示当前目录的上级目录)。 |
| \-c | 表示按照最后更改时间排序,可以使用 `-l` 显示出时间。 |
| \-f | 对输出的文件不进行排序。 |
| \-g | 类似 `-l`,列出目录信息。 |
| \-G | 表示 `–no-group`,不列出任何有关组的信息。 |
| \-h | 表示 `–human-readable`,与 `-l` 配合使用,如 `ls -lh`以容易理解的格式列出文件大小,如 10k、20M、100G。 |
| \-i | 表示 `–inode`,打印出每个文件的 `inode` 号。 |
| \-l | 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来,`ls -l` 可以简写为 `ll`。 |
| \-L | 表示 `–dereference`,当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息。 |
| \-m | 所有文件或目录以 `,` 分隔,并填满整行行宽。 |
| \-o | 类似 `-l`,显示文件的除组信息外的详细信息。 |
| \-r | 表示 `–reverse`,按照当前排序顺序相反的顺序排列。 |
| \-R | 表示 `–recursive`,递归出所有子目录层。 |
| \-s | 表示 `–size`,以块大小为单位列出所有文件的大小。 |
| \-S | 根据文件大小排序。 |
7.小结
----
本小节介绍了如何使用 `ls` 命令显示出目录或文件列表,还介绍了如何在 `ls` 命令后面跟上一个或多个参数对显示出的列表限制和筛选,另外还对 `ls -l 或 ll` 命令显示出来的文件信息做了详细的介绍,熟练掌握这些命令参数会帮助读者快速获取到目录或文件的信息,实际工作中需要根据具体的需要选择合适的参数帮助快速获取到文件相关信息,从而提升自己使用 Linux 系统的效率。
- Linux简介
- 安装Linux系统
- 虚拟机网络配置
- ssh终端软件介绍
- sshd服务详解
- ls命令查看文件和目录
- cd命令路径操作
- 创建文件和目录
- rm删除文件和目录
- cp命令:复制文件或目录
- mv移动文件和目录
- 文件压缩与解压
- 文件和目录重命名
- find查找文件和目录
- 查看文件内容
- grep命令:文本搜索
- curl命令:文件传输工具
- wget命令:下载网络文件
- scp命令:文件上传下载
- rsync命令:远程数据同步工具
- top命令:系统运行状态
- ifconfig命令:网络相关
- yum命令-红帽系统软件包管理
- apt命令:debian系统软件包管理
- vim编辑器
- nano编辑器
- Linux查看进程
- Linux 结束进程
- Linux磁盘空间
- Linux中的环境变量
- 查看环境变量
- 配置环境变量
- Linux用户介绍
- Linux添加用户
- Linux删除用户
- Linux修改用户
- 用户组介绍
- 添加用户组
- 修改用户组
- 删除用户组
- Linux文件权限介绍
- 修改文件权限
- 修改文件所属关系
- 文件系统介绍
- 日志文件系统
- 修改服务器时间
- crontab详解
- shell编程-shell介绍
- shell编程-变量和字符串
- shell编程-shell脚本的参数
- shell编程-流程控制
- shell编程-循环
- shell编程-数组
- shell编程-运算符
- shell编程-echo命令
- shell编程-printf命令
- shell编程-test命令
- shell编程-函数
- shell编程-输出重定向
- shell编程-文件包含
- shell编程-sed
- shell编程-awk
- shell编程-常用命令补充
- shell编程实战-拉git代码
- 源码安装Nginx
- 安装Apache
- 安装Redis
- Docker介绍
- Docker基础
- Docker镜像
- Docker容器
- Docker容器互联
- Docker 安装 Nginx
- 阿里云域名介绍
- 阿里云域名解析
- 阿里云域名备案
- 阿里云服务器ECS上
- 阿里云服务器ECS下
- 阿里云之域名ssl证书
- AWS服务介绍
- AWS之EC2
- AWS之VPC
- AWS之Route53
- AWS之RDS
- AWS之S3
- AWS之SSL
- AWS之CloudWatch
- AWS之IAM
- AWS之WAF
- AWS之Lambda
- AWS之安全策略
- AWS认证证书