news 2026/10/29 10:16:53

Linux - 文件和目录列表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux - 文件和目录列表

要想知道系统中有哪些文件,可以使用列表命令(ls)。本节将描述ls命令和可用来格式化其输出信息的选项。

总结

ls命令最基本的形式会显示当前目录下的文件和目录:

命令/参数备注
ls按列排序显示当前目录下的文件和目录
-F区分文件和目录。在目录名后加了正斜线(/),在可执行文件(比如上面的my_script文件)的后面加个星号
-a把隐藏文件(以点号开始的文件)和普通文件及目录一起显示出来
-R递归选项,列出了当前目录下包含的子目录中的文件
-l产生长列表格式的输出,包含了目录中每个文件的更多相关信息
-l --time=atime显示出已经更改过的文件访问时间
文件匹配规则备注
?问号可用于过滤器字符串中替代任意位置的单个字符
*星号可匹配零个或多个字符
[ ]中括号表示一个字符位置并给出多个可能的选择
[ai]匹配该位置为a或i的文件名
[a – i]指定字符范围,例如字母范围[a – i] ,即该位置从a到i的字母都会匹配
[!a]排除该位置为a的文件名

1.基本列表功能

ls命令最基本的形式会显示当前目录下的文件和目录:

$lsDesktop Downloads Music Pictures Templates Videos Documents examples.desktop my_script Public test_file

注意,ls命令输出的列表是按字母排序的(按列排序而不是按行排序)。如果用户用的是支持彩色的终端仿真器,ls命令还可以用不同的颜色来区分不同类型的文件。LS_COLORS环境变量控制着这个功能。(第6章中会讲到环境变量。)不同的Linux发行版根据各自终端仿真器的能力设置这个环境变量。

如果没安装彩色终端仿真器,可用带-F参数的ls命令轻松区分文件和目录。使用-F参数可以得到如下输出:

$ls-FDesktop/ Downloads/ Music/ Pictures/ Templates/ Videos/ Documents/ examples.desktop my_script* Public/ test_file

-F参数在目录名后加了正斜线(/),以方便用户在输出中分辨它们。类似地,它会在可执行文件(比如上面的my_script文件)的后面加个星号,以便用户找出可在系统上运行的文件。

基本的ls命令在某种意义上有点容易让人误解。它显示了当前目录下的文件和目录,但并没有将全部都显示出来。Linux经常采用隐藏文件来保存配置信息。在Linux上,隐藏文件通常是文件名以点号开始的文件。这些文件并没有在默认的ls命令输出中显示出来,因此我们称其为隐藏文件。

要把隐藏文件和普通文件及目录一起显示出来,就得用到-a参数。下面是一个带有-a参数的ls命令的例子:

所有以点号开头的隐藏文件现在都显示出来了。注意,有三个以.bash开始的文件。它们是bash shell环境所使用的隐藏文件,在第6章会对其进行详细的讲解。

-R参数是ls命令可用的另一个参数,叫作递归选项。它列出了当前目录下包含的子目录中的文件。如果目录很多,这个输出就会很长。以下是-R参数输出的简单例子:

$ls-F-R.: Desktop/ Downloads/ Music/ Pictures/ Templates/ Videos/ Documents/ examples.desktop my_script* Public/ test_file ./Desktop: ./Documents: ./Downloads: ./Music: ILoveLinux.mp3* ./Pictures: ./Public: ./Templates: ./Videos:

注意,首先-R参数显示了当前目录下的内容,也就是之前例子中用户home目录下的那些文件。另外,它还显示出了用户home目录下所有子目录及其内容。只有Music子目录中包含了一个可执行文件ILoveLinux.mp3。

选项并一定要像例子中那样分开输入:ls –F –R。它们可以进行如下合并:ls –FR。

在上一个例子中,子目录中没再包含子目录。如果有更多的子目录,-R参数会继续进行遍历。正如你所看到的,如果目录结构很庞大,输出内容会变得很长。

2.显示长列表

在基本的输出列表中,ls命令并未输出太多每个文件的相关信息。要显示附加信息,另一个常用的参数是-l。-l参数会产生长列表格式的输出,包含了目录中每个文件的更多相关信息。

ls-ltotal48drwxr-xr-x2christine christine4096Apr2220:37 Desktop drwxr-xr-x2christine christine4096Apr2220:37 Documents drwxr-xr-x2christine christine4096Apr2220:37 Downloads -rw-r--r--1christine christine8980Apr2213:36 examples.desktop -rw-rw-r--1christine christine0May2113:44 fall -rw-rw-r--1christine christine0May2113:44 fell -rw-rw-r--1christine christine0May2113:44 fill -rw-rw-r--1christine christine0May2113:44 full drwxr-xr-x2christine christine4096May2111:39 Music -rw-rw-r--1christine christine0May2113:25 my_file -rw-rw-r--1christine christine0May2113:25 my_scrapt -rwxrw-r--1christine christine54May2111:26 my_script -rw-rw-r--1christine christine0May2113:42 new_file drwxr-xr-x2christine christine4096Apr2220:37 Pictures drwxr-xr-x2christine christine4096Apr2220:37 Public drwxr-xr-x2christine christine4096Apr2220:37 Templates -rw-rw-r--1christine christine0May2111:28 test_file drwxr-xr-x2christine christine4096Apr2220:37 Videos $

这种长列表格式的输出在每一行中列出了单个文件或目录。除了文件名,输出中还有其他有用信息。输出的第一行显示了在目录中包含的总块数。在此之后,每一行都包含了关于文件(或目录)的下述信息:

下面以Music文件为例进行介绍:

drwxr-xr-x2christine christine4096May2111:39 Music
列属性序号列属性名示例注释
1文件类型d目录(d)、文件(-)、字符型文件(c)或块设备(b)
2文件的权限rwxr-xr-x(参见第6章)
3文件的硬链接总数2
4文件属主的用户名christine
5文件属组的组名christine
6文件的大小4096(以字节为单位)
7文件的上次修改时间May 21 11:39月 日 时间
8文件名或目录名Music

-l参数是一个强大的工具。有了它,你几乎可以看到系统上任何文件或目录的大部分信息。

在进行文件管理时,ls命令的很多参数都能派上用场。如果在shell提示符中输入man ls,就能看到可用来修改ls命令输出的参数有好几页。

别忘了可以将多个参数结合起来使用。你不时地会发现一些参数组合不仅能够显示出所需的内容,而且还容易记忆,例如ls –alF。

3.过滤输出列表

前面的例子可知,默认情况下,ls命令会输出目录下的所有非隐藏文件。有时这个输出会显得过多,当你只需要查看单个少数文件信息时更是如此。
幸而ls命令还支持在命令行中定义过滤器。它会用过滤器来决定应该在输出中显示哪些文件或目录。

这个过滤器就是一个进行简单文本匹配的字符串。可以在要用的命令行参数之后添加这个过滤器:

$ls-lmy_script -rwxrw-r--1christine christine54May2111:26 my_script $

当用户指定特定文件的名称作为过滤器时,ls命令只会显示该文件的信息。有时你可能不知道要找的那个文件的确切名称。ls命令能够识别标准通配符,并在过滤器中用它们进行模式匹配:

 问号(?)代表一个字符;
 星号(*)代表零个或多个字符。

问号可用于过滤器字符串中替代任意位置的单个字符。例如:

$ls-lmy_scr?pt -rw-rw-r--1christine christine0May2113:25 my_scrapt -rwxrw-r--1christine christine54May2111:26 my_script $

其中,过滤器my_scr?pt与目录中的两个文件匹配。类似地,星号可匹配零个或多个字符。

$ls-lmy* -rw-rw-r--1christine christine0May2113:25 my_file -rw-rw-r--1christine christine0May2113:25 my_scrapt -rwxrw-r--1christine christine54May2111:26 my_script $

使用星号找到了三个名字以my开头的文件。和问号一样,你可以把星号放在过滤器中的任意位置。

$ls-lmy_s*t -rw-rw-r--1christine christine0May2113:25 my_scrapt -rwxrw-r--1christine christine54May2111:26 my_script $

在过滤器中使用星号和问号被称为文件扩展匹配(file globbing),指的是使用通配符进行模式匹配的过程。通配符正式的名称叫作元字符通配符(metacharacter wildcards)。除了星号和问号之外,还有更多的元字符通配符可用于文件扩展匹配。可以使用中括号。

$ls-lmy_scr[ai]pt -rw-rw-r--1christine christine0May2113:25 my_scrapt -rwxrw-r--1christine christine54May2111:26 my_script $

在这个例子中,我们使用了中括号以及在特定位置上可能出现的两种字符:a或i。中括号表示一个字符位置并给出多个可能的选择。可以像上面的例子那样将待选的字符列出来,也可以指定字符范围,例如字母范围[a – i]。即该位置从a到i的字母都会匹配。

$ls-lf[a-i]ll -rw-rw-r--1christine christine0May2113:44 fall -rw-rw-r--1christine christine0May2113:44 fell -rw-rw-r--1christine christine0May2113:44 fill $

另外,可以使用感叹号(!)将不需要的内容排除在外。

$ls-lf[!a]ll -rw-rw-r--1christine christine0May2113:44 fell -rw-rw-r--1christine christine0May2113:44 fill -rw-rw-r--1christine christine0May2113:44 full $

在进行文件搜索时,文件扩展匹配是一个功能强大的特性。它也可以用于ls以外的其他shell命令。本章随后的部分会有到更多相关的例子。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/29 10:16:18

EasyGoAdmin 生成 CRUD 后的前后端联调步骤

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/29 10:16:16

GoFrame+Vue3+ElementPlus 代码生成器配置字段映射

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/29 10:16:05

用 EasyGoAdmin 搭 OA 后台:GoFrame+Vue3+ElementPlus 实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/29 10:15:59

EasyGoAdmin 代码生成器模板改造步骤

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/29 10:15:20

GoFrame+Vue3+ElementPlus 物流后台模块实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/29 10:14:56

DeepSeek API实现文本与图像分类:提示词设计与工程避坑指南

简介:面向有Python编程经验的技术开发者,这份指南系统讲解借助DeepSeek API完成图像分类与文本分类任务的完整流程,也适用于正在集成自动化AI分类系统的开发团队。资源覆盖从账号注册与API密钥获取、requests和Pillow等依赖库安装&#xff0c…

作者头像 李华